从键盘输入某班学生某门课的成绩(每班人数最多不超过40人),当输入为负值时,表示输入结束,试编程将分数按从高到低顺序进行排序输出。 排序功能需要自定义函数实现。C语言
时间: 2024-05-05 18:22:47 浏览: 138
下面是一个简单的 C 语言程序,实现了输入某班学生某门课的成绩,并对成绩按照从高到低的顺序进行排序输出:
```c
#include <stdio.h>
#define MAX_NUM 40
void sort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int scores[MAX_NUM];
int i, n = 0;
while (n < MAX_NUM) {
int score;
printf("请输入第 %d 个学生的成绩:", n+1);
scanf("%d", &score);
if (score < 0) {
break;
}
scores[n++] = score;
}
sort(scores, n);
printf("成绩从高到低的排序结果为:\n");
for (i = 0; i < n; i++) {
printf("%d\n", scores[i]);
}
return 0;
}
```
程序中首先定义了一个 MAX_NUM 常量,表示最多输入的学生人数,然后定义了一个 sort() 函数,用于对成绩进行排序。sort() 函数使用了冒泡排序算法,即从前往后依次比较相邻的两个元素,将大的元素往后移动,直到所有元素都排好序。
在主函数中,我们首先定义了一个 scores 数组,用于存储学生成绩,然后使用一个 while 循环,不断读取用户输入的成绩,并将其保存到 scores 数组中。当输入的成绩为负值时,循环结束。最后调用 sort() 函数对成绩进行排序,并输出排序结果。
阅读全文