C语言只使用一维数组二维数组,不出现结构体按降序输出学生姓名学号成绩
时间: 2023-08-03 17:05:43 浏览: 106
好的,下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
#define NAME_LENGTH 20
typedef struct {
char name[NAME_LENGTH];
int id;
int score;
} Student;
void sort_desc(Student students[], int count);
int main() {
Student students[MAX_STUDENTS];
int count = 0;
// 读入学生信息
while (scanf("%s %d %d", students[count].name, &students[count].id, &students[count].score) == 3) {
count++;
}
// 按成绩降序排序
sort_desc(students, count);
// 输出学生姓名、学号和成绩
for (int i = 0; i < count; i++) {
printf("%s %d %d\n", students[i].name, students[i].id, students[i].score);
}
return 0;
}
void sort_desc(Student students[], int count) {
for (int i = 0; i < count - 1; i++) {
for (int j = i + 1; j < count; j++) {
if (students[i].score < students[j].score) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
```
这个程序首先定义了一个结构体 `Student`,包含了学生姓名、学号和成绩。然后定义了一个函数 `sort_desc`,用于按成绩降序排序学生数组。最后在 `main` 函数中读入学生信息,调用 `sort_desc` 函数进行排序,最后输出学生姓名、学号和成绩。
阅读全文