模仿C语言初学者编程,实现有n个学生的信息(包括学号、姓名、成绩),要求按照成绩由高到低的顺序输出各学生的信息,主题为结构体变量
时间: 2024-02-27 11:55:01 浏览: 78
好的,我可以为你编写一个简单的按成绩排序输出学生信息的程序,以下是代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
#define MAX_NAME_LEN 20
// 学生结构体
struct student {
char id[10]; // 学号
char name[MAX_NAME_LEN]; // 姓名
float score; // 成绩
};
int main()
{
int n;
struct student students[MAX_STUDENT_NUM];
struct student tmp;
int i, j;
printf("请输入学生人数:");
scanf("%d", &n);
// 输入学生信息
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号、姓名、成绩:", i+1);
scanf("%s %s %f", students[i].id, students[i].name, &students[i].score);
}
// 按成绩由高到低排序
for (i = 0; i < n; i++) {
for (j = i+1; j < n; j++) {
if (students[j].score > students[i].score) {
tmp = students[i];
students[i] = students[j];
students[j] = tmp;
}
}
}
// 输出学生信息
printf("\n按成绩由高到低排序后的学生信息如下:\n");
for (i = 0; i < n; i++) {
printf("%s %s %.2f\n", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
这个程序使用了结构体变量来存储每个学生的信息,通过循环让每个学生输入学号、姓名、成绩,然后按成绩由高到低的顺序排序,最终输出每个学生的信息。
阅读全文