用C语言输入n并输出n个学生的信息(学号,姓名,成绩),按照成绩从高到低的顺序输出他们的信息
时间: 2024-02-11 15:06:32 浏览: 26
好的,以下是C语言的代码实现,假设每个学生的学号、姓名和成绩都是字符串类型:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
struct Student {
char id[20];
char name[50];
int score;
};
int main() {
int n;
printf("请输入学生人数:\n");
scanf("%d", &n);
struct Student students[MAX_STUDENTS];
printf("请输入学生的学号、姓名和成绩:\n");
for (int i = 0; i < n; i++) {
scanf("%s %s %d", students[i].id, students[i].name, &students[i].score);
}
// 冒泡排序,按照成绩从高到低排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (students[j].score < students[j + 1].score) {
struct Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("按照成绩从高到低的顺序输出学生的信息:\n");
for (int i = 0; i < n; i++) {
printf("学号:%s\t姓名:%s\t成绩:%d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
输入示例:
```
请输入学生人数:
3
请输入学生的学号、姓名和成绩:
1001 张三 88
1002 李四 92
1003 王五 78
```
输出示例:
```
按照成绩从高到低的顺序输出学生的信息:
学号:1002 姓名:李四 成绩:92
学号:1001 姓名:张三 成绩:88
学号:1003 姓名:王五 成绩:78
```