注意事项: 不止一组输入!!不止一组输入!!!
也就是说输入其实是:
3
xxxx
xxxx
xxxx
5
xxxxx
xxxx
xxxx
xxxx
xxxx
参考代码:
#include<stdio.h>
#include<string.h>
typedef struct student
{
char name[200];
int score;
int age;
}s;
void swap(s *s1, s *s2)
{
s temp;
temp = *s1;
*s1 = *s2;
*s2 = temp;
}
int main(){
int n,cnt;
s A[1000];
while(~scanf("%d",&n))
{
cnt = 0;
while(n--)
{
scanf("%s %d %d",A[cnt].name,&A[cnt].age,&A[cnt].score);
cnt++;
}
//swap(&A[0],&A[1]);
// s temp;
// temp = A[0];
// A[0] = A[1];
// A[1] = temp;
//printf("%s",A[1].name);
//cnt = 3 A读取完毕
for (int i = 0; i < cnt; i++)
{
for(int j = 0; j < cnt - i - 1; j++)
{
if(A[j].score > A[j+1].score)
{
swap(&A[j],&A[j+1]);
}
else if(A[j].score == A[j+1].score)
{
if(strcmp(A[j].name,A[j+1].name)>0)
{
swap(&A[j],&A[j+1]);
}
else if(strcmp(A[j].name,A[j+1].name)==0)
{
if(A[j].age>A[j+1].age)
{
swap(&A[j],&A[j+1]);
}
}
}
}
}
for(int i = 0; i < cnt; i++)
{
printf("%s %d %d\n",A[i].name,A[i].age,A[i].score);
}
}
return 0;
}
0.0分
0 人评分
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:729 |
数组输出 (C语言代码)--此题的题目描述有问题浏览:1844 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题8.2 (C语言代码)浏览:5275 |
简单的a+b (C语言代码)浏览:618 |
C二级辅导-计负均正 (C语言代码)浏览:523 |
妹子杀手的故事 (C语言代码)浏览:1155 |
格式化数据输出 (C语言代码)浏览:882 |
简单的a+b (C语言代码)浏览:497 |