输入并保存3个学生的信息(包括:学号,姓名,成绩),请按照每个学生的成绩 从高分到低分的顺序输出他们的信息。,用c语言设计程序并给出例子
时间: 2024-05-10 21:16:51 浏览: 136
以下是一个示例程序,可以实现输入并保存3个学生的信息,并按照成绩从高分到低分的顺序输出他们的信息:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 3
typedef struct {
int id;
char name[20];
int score;
} Student;
int compare_students(const void* a, const void* b) {
const Student* sa = (const Student*) a;
const Student* sb = (const Student*) b;
return sb->score - sa->score;
}
int main() {
Student students[MAX_STUDENTS];
int i;
// 输入学生信息
for (i = 0; i < MAX_STUDENTS; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩:");
scanf("%d", &students[i].score);
}
// 按照成绩排序
qsort(students, MAX_STUDENTS, sizeof(Student), compare_students);
// 输出学生信息
printf("按照成绩从高到低的顺序,学生的信息如下:\n");
printf("学号\t姓名\t成绩\n");
for (i = 0; i < MAX_STUDENTS; i++) {
printf("%d\t%s\t%d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
运行程序后,按照提示输入3个学生的信息后,程序会按照成绩从高到低的顺序输出学生的信息。例如,输入以下学生信息:
```
请输入第1个学生的信息:
学号:1001
姓名:张三
成绩:80
请输入第2个学生的信息:
学号:1002
姓名:李四
成绩:90
请输入第3个学生的信息:
学号:1003
姓名:王五
成绩:70
```
则程序会输出以下结果:
```
按照成绩从高到低的顺序,学生的信息如下:
学号 姓名 成绩
1002 李四 90
1001 张三 80
1003 王五 70
```
阅读全文