c语言编写程序,输入n个学生的学号和成绩(有1位小数),按成绩从高到低排序输出,n小于50,学号小于10位。
时间: 2023-06-03 10:04:02 浏览: 67
好的,这个问题是编程问题,可以回答。这个问题需要使用排序算法,例如冒泡排序或者快速排序来解决。以下是一种使用C语言编写的冒泡排序算法的示例代码:
```c
#include <stdio.h>
typedef struct {
char id[11];
float score;
} STUDENT;
int main() {
int n, i, j;
STUDENT students[50];
STUDENT temp;
printf("请输入学生数量:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入学生%d的学号和成绩:", i + 1);
scanf("%s%f", students[i].id, &students[i].score);
}
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (students[j].score < students[j + 1].score) {
temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("按成绩从高到低排序的结果为:\n");
for (i = 0; i < n; i++) {
printf("%s %.1f\n", students[i].id, students[i].score);
}
return 0;
}
```
希望这个代码能够对您有所帮助。