广西大学计算机系上机题库代码一览20级

广西大学2020级计算机系题库代码解析与参考答案


前言

提示:代码分为极简版本和标准化版本,并不是说极简会好背或者标准化版本就繁琐,各有各的优势,贴两副代码仅供各位参考学习,预祝各位程设考出好成绩


一、判断升序

主要思路是前者与后者相比大小,符合条件即输出YES^NO;

极简版

#include<stdio.h>
int x[200005] = {
   
   },i=1,flag=1;
int main()
{
   
   
	scanf("%d", &x[0]);
	while (scanf("%d", &x[i]) != EOF) (x[i - 1] <= x[i])?i++:(flag=0);
	flag?printf("YES"):printf("NO");
}//极简版本
#include<stdio.h>
int x,n=1,f=1;
int main(){
   
   
	for(f=1,scanf("%d",&x);~scanf("%d",&n);x=n) f&=x<=n;
    puts(f?"YES":"NO");
}

标准版

#include<stdio.h>
int main(void)
{
   
   
	long long  a[50004] = {
   
   };
	int i = 1;
	int flag = 0;
	a[0] = -0x3f3f3f3f;//最小值
	while (scanf("%d", &a[i])!=EOF) {
   
   
		if (a[i] >= a[i - 1]){
   
   //这一步是用来和前一项比较		
            i++;
     
        }
		else flag = 1;
      
	}
	if(flag)
	printf("NO\n");
	else	printf("YES\n");
	return 0;
}//工业化代码

二、小西的排序

主要思路是利用结构体去捆绑排序,排序的有效手段是快速排序和冒泡排序;

极简版(快速排序)

代码如下(示例):

#include<stdio.h>
#include<stdlib.h>
typedef struct node {
   
   char x[20];double y;}T;
T x[2005] = {
   
   };
//快速排序的重载函数,用于比较大小
int cmp(const void* a, const void* b)
{
   
   
	return (*(T*)a).y > (*(T*)b).y ;
}
int main()
{
   
   
	int n;
	while (scanf("%d", &n) != EOF) {
   
   
		for (int i = 0; i < n; i++) scanf("%s %lf", &x[i].x, &x[i].y);
		qsort(x, n, sizeof(T), cmp);//快速排序,直接重载装上就排好了
		for (int i = 0; i < n; i++)	printf("%s ", x[i].x);
		printf("\n");
	}
}

标准版(冒泡排序)

代码如下(示例):

#include<stdio.h>
int n;
struct {
   
   char s[21];double hi;}bd[100],t;
int main(){
   
   
	while(~scanf("%d",&n)){
   
   
    	for(int i=0;i<n;i++) scanf("%s %lf",&bd[i].s,&bd[i].hi);
    	for(int i=0;i<n;i++) for(int j=1;j<n;j++) 
          	if(bd[j].hi<bd[j-1].hi) t=bd[j-1],bd[j-1]=bd[j],bd[j]=t;
      	for(int i
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值