要求输入20位同学的c语言成绩,并按照成绩降序输出各位同学的成绩。
为了实现输入20位同学的C语言成绩并按降序输出,可以按照以下步骤进行:
输入成绩:
定义数组:首先定义一个能够存储20个整数(成绩)的数组。
cint scores[20];
输入成绩:使用循环结构(如for循环)逐个输入每位同学的成绩。
cfor (int i = 0; i < 20; ++i) { printf("请输入第 %d 位同学的成绩:", i + 1); scanf("%d", &scores[i]); }
这段代码会提示用户依次输入每位同学的成绩,并将输入的成绩存储在数组中。
按降序输出成绩:
排序数组:使用适当的排序算法对数组进行降序排序。可以选择冒泡排序、选择排序或快速排序等,这里以冒泡排序为例。
c// 冒泡排序(降序) for (int i = 0; i < 20 - 1; ++i) { for (int j = 0; j < 20 - i - 1; ++j) { if (scores[j] < scores[j + 1]) { // 交换元素 int temp = scores[j]; scores[j] = scores[j + 1]; scores[j + 1] = temp; } } }
这段代码会将数组
scores
中的成绩按降序排列。输出排序后的成绩:使用循环结构将排序后的成绩逐个输出。
cprintf("按成绩降序排列的结果:\n"); for (int i = 0; i < 20; ++i) { printf("%d\n", scores[i]); }
这段代码会逐行打印已排序的成绩,即从最高分到最低分。
完整示例代码:
c#include <stdio.h>
int main() {
int scores[20];
// 输入成绩
for (int i = 0; i < 20; ++i) {
printf("请输入第 %d 位同学的成绩:", i + 1);
scanf("%d", &scores[i]);
}
// 冒泡排序(降序)
for (int i = 0; i < 20 - 1; ++i) {
for (int j = 0; j < 20 - i - 1; ++j) {
if (scores[j] < scores[j + 1]) {
// 交换元素
int temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
// 输出排序后的成绩
printf("按成绩降序排列的结果:\n");
for (int i = 0; i < 20; ++i) {
printf("%d\n", scores[i]);
}
return 0;
}
这段完整的C语言程序实现了按照成绩降序输入和输出的功能。你可以根据需要修改输入的同学数量和具体的排序算法来适应不同的场景和要求。