有一学生情况如下表所示。编制一个C程序,用冒泡法对该学生情况表按成绩(grade)从低到高进行排序。
时间: 2024-03-25 15:38:45 浏览: 38
好的,这是一个经典的排序算法问题,下面是一个基于冒泡排序的C程序,可以实现您的需求:
```c
#include <stdio.h>
struct student {
int id;
char name[20];
float grade;
};
int main() {
int n = 5; // 学生数量
struct student stu[n];
int i, j;
// 读入学生信息
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("学号:");
scanf("%d", &stu[i].id);
printf("姓名:");
scanf("%s", &stu[i].name);
printf("成绩:");
scanf("%f", &stu[i].grade);
}
// 冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (stu[j].grade > stu[j + 1].grade) {
// 交换位置
struct student temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
}
// 输出排序结果
printf("\n排序后的学生信息:\n");
for (i = 0; i < n; i++) {
printf("学号:%d, 姓名:%s, 成绩:%.2f\n", stu[i].id, stu[i].name, stu[i].grade);
}
return 0;
}
```
您可以复制上面的代码并在本地编译运行,输入每个学生的信息,然后程序将会按照成绩从低到高排序并输出结果。