代码如下:
#include <stdio.h>
struct student
{
char name[20];
int number;
int math;
int chinese;
int english;
};
int main(int argc, const char *argv[])
{
struct student sum[100];
printf("请依次输入姓名 学号 数学成绩 语文成绩 英语成绩\n");
for(int i = 0 ; i<5 ;i++)
{
scanf("%s %d %d %d %d",sum[i].name,&sum[i].number,&sum[i].math,&sum[i].chinese,&sum[i].english);
}
printf("录入的同学信息如下:\n");
for(int i = 0 ; i<5 ;i++)
{
printf("%s %d %d %d %d\n",sum[i].name,sum[i].number,sum[i].math,sum[i].chinese,sum[i].english);
}
printf("按数学成绩排名如下:\n");
for(int i = 1;i<5;i++)
{
for (int j = 0 ;j<5-i;j++)
{
if(sum[j].math<sum[j+1].math)
{
struct student t = sum[j];
sum[j]= sum[j+1];
sum[j+1] = t;
}
}
}
for(int i = 0 ; i<5 ;i++)
{
printf("%s %d %d %d %d\n",sum[i].name,sum[i].number,sum[i].math,sum[i].chinese,sum[i].english);
}
return 0;
}
结果如下:
ubuntu@ubuntu:day1$ ./a.out
请依次输入姓名 学号 数学成绩 语文成绩 英语成绩
小智 1 99 99 99
小刚 2 69 69 69
小瑶 3 89 89 89
小霞 4 75 75 75
小明 5 60 60 60
录入的同学信息如下:
小智 1 99 99 99
小刚 2 69 69 69
小瑶 3 89 89 89
小霞 4 75 75 75
小明 5 60 60 60
按数学成绩排名如下:
小智 1 99 99 99
小瑶 3 89 89 89
小霞 4 75 75 75
小刚 2 69 69 69
小明 5 60 60 60