用c语言写程序。有n个学生的信息(包括学号、姓名、成绩),要 求采用冒泡排序按照成绩的高低 顺序输出各个学生的信息。
时间: 2024-02-29 09:51:22 浏览: 73
编写程序,输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息。学生信息包括:学号、姓名、成绩。
好的,以下是用 C 语言实现的程序代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
struct Student {
char id[20];
char name[20];
int score;
};
void bubble_sort(struct Student students[], int n) {
int i, j;
struct Student temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (students[j].score < students[j + 1].score) {
temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
}
int main() {
int n, i;
struct Student students[MAX_STUDENTS];
printf("请输入学生数目:");
scanf("%d", &n);
if (n > MAX_STUDENTS) {
printf("学生数目超过最大值 %d\n", MAX_STUDENTS);
return 1;
}
for (i = 0; i < n; i++) {
printf("请输入第 %d 个学生的信息:\n", i + 1);
printf("学号:");
scanf("%s", students[i].id);
printf("姓名:");
scanf("%s", students[i].name);
printf("成绩:");
scanf("%d", &students[i].score);
}
bubble_sort(students, n);
printf("按成绩排序后的学生信息如下:\n");
for (i = 0; i < n; i++) {
printf("%s\t%s\t%d\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
这个程序与之前的程序类似,也是定义了一个结构体 `Student`,读入学生数目和每个学生的信息,然后调用 `bubble_sort` 函数进行冒泡排序,按成绩从高到低输出排序后的学生信息。
阅读全文