创建一个结构体ST,成员有num(学号),name(姓名),score(成绩),从键盘输入N个人员信息,按score(成绩)降序输出每个学生的记录,在main函数中输入数据,在另一个函数中排序并输出。C++
时间: 2023-06-13 21:03:40 浏览: 113
成绩及信息管理,用C写的一个小程序
以下是一个可以实现该功能的C代码:
```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX_NUM 100
// 结构体定义
typedef struct Student {
int num;
char name[20];
int score;
} ST;
void sort(ST *list, int n); // 排序函数
int main() {
ST list[MAX_NUM]; // 存储学生信息的数组
int n; // 学生总数
printf("请输入学生总数:");
scanf("%d", &n);
printf("请依次输入每个学生的信息(学号、姓名、成绩):\n");
for (int i = 0; i < n; i++) {
scanf("%d %s %d", &list[i].num, list[i].name, &list[i].score);
}
sort(list, n); // 调用排序函数
printf("按成绩降序输出结果:\n");
for (int i = 0; i < n; i++) {
printf("%d %s %d\n", list[i].num, list[i].name, list[i].score);
}
return 0;
}
// 排序函数,使用冒泡排序法
void sort(ST *list, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (list[j].score < list[j+1].score) {
ST temp = list[j];
list[j] = list[j+1];
list[j+1] = temp;
}
}
}
}
```
输入示例:
```
请输入学生总数:3
请依次输入每个学生的信息(学号、姓名、成绩):
1001 Tom 80
1002 Alice 90
1003 Bob 70
```
输出示例:
```
按成绩降序输出结果:
1002 Alice 90
1001 Tom 80
1003 Bob 70
```
阅读全文