要求编写一个程序帮助老师统计学生成绩并将成绩从大到小排序,具体要求如下。 (1)假设班级有20名学生,从键盘输入这20名学生成绩。 (2)从大到小将成绩排序。 (3)将排序后的成绩输出到控制台,每行10名学生成绩。C语言
时间: 2024-12-24 15:35:15 浏览: 5
在C语言中,你可以使用数组和循环结构来实现这个需求。首先,创建一个大小为20的成绩数组,然后通过`scanf`函数读取学生的成绩。接着,可以利用冒泡排序算法对成绩数组进行降序排列。最后,利用`printf`函数以每行10个元素的形式输出排序后的成绩。
以下是简单的示例代码:
```c
#include <stdio.h>
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
// 交换相邻两个较大的数
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
const int students = 20;
int scores[students];
// 输入20名学生的成绩
for (int i = 0; i < students; i++) {
scanf("%d", &scores[i]);
}
// 对成绩数组进行降序排序
bubbleSort(scores, students);
// 输出按每行10个分数排序后的结果
for (int i = 0; i < students; i += 10) {
for (int j = i; j < i + 10 && j < students; j++) {
printf("%d ", scores[j]);
}
printf("\n"); // 每行结束后换行
}
return 0;
}
```
阅读全文