用c语言编写:定义一个学生数组,输入五个学生信息,按分数从小到大输出信息 学生信息为1001 lihua 50.55 1008 zhangsan 30.00 1004 Lisa 60.00 1007 lisi 80.00 1110 wang 70.7700
时间: 2024-09-12 18:10:41 浏览: 31
在C语言中,我们可以定义一个结构体来存储学生的姓名、学号和分数,然后创建一个动态数组来存放这五个学生的信息。以下是具体的步骤:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
struct Student {
int id;
char name[20];
float score;
};
// 按分数排序函数
int compare(const void *a, const void *b) {
return ((struct Student *)a)->score - ((struct Student *)b)->score;
}
int main() {
// 动态分配内存
struct Student students[5];
int i;
printf("请输入五个学生的学号、姓名和成绩:\n");
for (i = 0; i < 5; i++) {
scanf("%d %s %f", &students[i].id, students[i].name, &students[i].score);
}
// 对学生数组按照分数进行排序
qsort(students, 5, sizeof(struct Student), compare);
printf("\n按照分数从小到大排序后的学生信息:\n");
for (i = 0; i < 5; i++) {
printf("学号:%d 姓名:%s 分数:%f\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
在这个程序中,我们首先定义了一个`Student`结构体,并使用`qsort`函数对数组进行排序。`compare`函数是一个辅助函数,用于指定排序规则。
阅读全文