3.输入五个学生的信息(姓名,年龄,学号、成绩)放在一个结构体,按照成绩给五个学生从高到低排序 如: 输入: 学号 姓名 年龄 成绩
时间: 2024-02-06 20:10:56 浏览: 19
好的,下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
int age;
int id;
int score;
};
int main() {
struct student s[5];
int i, j;
struct student temp;
// 输入五个学生信息
printf("请依次输入五个学生的信息(姓名,年龄,学号、成绩):\n");
for (i = 0; i < 5; i++) {
printf("请输入第%d个学生的信息:", i + 1);
scanf("%s %d %d %d", s[i].name, &s[i].age, &s[i].id, &s[i].score);
}
// 按照成绩从高到低排序
for (i = 0; i < 4; i++) {
for (j = i + 1; j < 5; j++) {
if (s[i].score < s[j].score) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
// 输出排序后的结果
printf("\n按照成绩从高到低排序后的结果:\n");
for (i = 0; i < 5; i++) {
printf("%d %s %d %d\n", s[i].id, s[i].name, s[i].age, s[i].score);
}
return 0;
}
```
输出示例:
```
请依次输入五个学生的信息(姓名,年龄,学号、成绩):
请输入第1个学生的信息:Tom 18 1001 85
请输入第2个学生的信息:Mike 20 1002 76
请输入第3个学生的信息:Lucy 19 1003 92
请输入第4个学生的信息:Jack 18 1004 70
请输入第5个学生的信息:Lily 19 1005 88
按照成绩从高到低排序后的结果:
1003 Lucy 19 92
1005 Lily 19 88
1001 Tom 18 85
1002 Mike 20 76
1004 Jack 18 70
```