1004 成绩排名 (20 分)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
本题就是用一个结构体数组存放学生信息,然后做一个排序。
#include <stdio.h>
#include <string.h>
struct stu{
char name[11];
char num[11];
int score;
};
int main(void)
{
int n,i,j,index;
scanf("%d",&n);
struct stu s[101],temp;
for(i=0;i<n;i++)
scanf("%s%s%d",s[i].name,s[i].num,&s[i].score);
for(i=0;i<n-1;i++) //选择排序
{
index=i;
for(j=i;j<n;j++)
{
if(s[index].score>s[j].score)
{
index=j;
break;
}
}
temp=s[index];
s[index]=s[i];
s[i]=temp;
}
printf("%s %s\n",s[n-1].name,s[n-1].num);
printf("%s %s",s[0].name,s[0].num);
return 0;
}