解题思路:

注意事项:

注意姓名字符串的长度要大于8,因为这个调了很多次


参考代码:

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;

struct student
{
	int number;
	char name[9];
	int score;
 } buf[100000];
 
 bool cmp1(student a,student b)
 {
 	return a.number<b.number;
 }
 
 bool cmp2(student a,student b)
 {
 	int tmp=strcmp(a.name,b.name);
 	if(tmp!=0)
 	{
 		return tmp<0;
	 }
	 else
	 {
	 	return a.number<b.number;
	 }
 }
 
bool cmp3(student a,student b)
{
	if(a.score!=b.score)
	{
		return a.score<b.score;
	}
	else
	{
		return a.number<b.number;
	}
}

int main()
{
	int n,c,num=0;
	while(scanf("%d%d",&n,&c)!=EOF)
	{
		num++; 
		if(n>0)
		{ 
		for(int i=0;i<n;i++)
		{
			scanf("%d%s%d",&buf[i].number,buf[i].name,&buf[i].score);
		}
		if(c==1)
		{
			sort(buf,buf+n,cmp1);
		}
		else if(c==2)
		{
			sort(buf,buf+n,cmp2);
		}
		else if(c==3)
		{
			sort(buf,buf+n,cmp3);
		}
		printf("Case %d:\n",num);
		for(int i=0;i<n;i++)
		{
			printf("%06d %s %d\n",buf[i].number,buf[i].name,buf[i].score);
		}
	    }
	    else continue;
	} 
	return 0;
}


点赞(1)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论