C语言有n个学生的信息(包括学号、姓名、成绩),要求按照成绩由高到低的顺序输出各学生的信息。程序如下:
时间: 2024-02-27 14:57:26 浏览: 61
以下是一个简单的C语言程序,用于按照学生成绩从高到低的顺序输出学生信息:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[50];
int id;
float score;
};
void sort(struct student s[], int n) {
int i, j;
struct student temp;
for(i = 0; i < n; i++) {
for(j = i+1; j < n; j++) {
if(s[i].score < s[j].score) {
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
}
int main() {
int n, i;
printf("Enter the number of students: ");
scanf("%d", &n);
struct student s[n];
for(i = 0; i < n; i++) {
printf("Enter details of student %d:\n", i+1);
printf("Name: ");
scanf("%s", s[i].name);
printf("ID: ");
scanf("%d", &s[i].id);
printf("Score: ");
scanf("%f", &s[i].score);
}
sort(s, n);
printf("\nSorted student details:\n");
for(i = 0; i < n; i++) {
printf("Name: %s\n", s[i].name);
printf("ID: %d\n", s[i].id);
printf("Score: %.2f\n", s[i].score);
}
return 0;
}
```
在此程序中,我们使用一个 `struct` 结构体来存储每个学生的信息。我们定义了一个 `sort()` 函数,该函数使用冒泡排序算法按照成绩从高到低的顺序对学生信息进行排序。然后,在 `main()` 函数中,我们从用户输入学生信息,调用 `sort()` 函数对学生信息进行排序,最后按照顺序输出每个学生的信息。
请注意,该程序中使用了 `scanf()` 函数来从控制台读取用户输入的数据。为了避免缓冲区溢出等问题,我们使用了 `%s` 格式化字符串来读取字符串,并使用 `%d` 和 `%f` 格式化字符串来读取整数和浮点数。
阅读全文