4.编写程序:输入6个同学的分数,降序输出这6人分数。
时间: 2024-12-16 22:23:34 浏览: 9
要编写一个程序来输入六个学生的分数,然后按降序输出,你可以使用C语言中的数组和循环结构。这里是一个简单的示例:
```c
#include <stdio.h>
#define NUM_STUDENTS 6
int main() {
float scores[NUM_STUDENTS]; // 创建一个存储分数的数组
int i;
printf("请输入六位同学的成绩(输入负数结束输入):\n");
for (i = 0; i < NUM_STUDENTS; i++) {
scanf("%f", &scores[i]); // 输入每个学生的分数
// 防止无限递归输入
if (scanf("%*d") != 1) {
break; // 输入不是浮点数,退出循环
}
}
// 对数组进行降序排序
qsort(scores, NUM_STUDENTS, sizeof(float), compare_scores_descending);
printf("学生分数(降序排列):\n");
for (i = 0; i < NUM_STUDENTS; i++) {
printf("第 %d 名: %.2f\n", i + 1, scores[i]);
}
return 0;
// 升序比较函数,我们将其改写成降序版本
int compare_scores_descending(const void *a, const void *b) {
return (*(const float*)b - *(const float*)a); // 负数表示b大于a
}
```
在这个程序中,首先创建了一个包含六分成绩的数组。用户逐个输入分数,当输入非数值时,跳出输入循环。然后使用`qsort`函数对数组进行降序排序,最后输出排序后的结果。
注意,这里假设了输入的都是有效的浮点数。如果你需要处理错误输入,可以在输入分数的地方添加更多的错误检测代码。
阅读全文