从键盘输入10个学生的成绩(整型)至数组中,输出所有成绩(用一个空格分隔),并将最低分及所在下标、最高分及所在下标、以及平均分。最后逆序排序后输出所有学生成绩。用c语言实现,最后要逆序,按从大到小的孙旭输出
时间: 2024-02-27 17:51:20 浏览: 50
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,以下是C语言的实现代码:
```c
#include <stdio.h>
#define N 10 // 学生人数
int main() {
int scores[N];
int minScore = 100, maxScore = 0, sumScore = 0;
int minIndex = 0, maxIndex = 0;
// 输入成绩并统计最高分、最低分、总分
for (int i = 0; i < N; i++) {
scanf("%d", &scores[i]);
if (scores[i] < minScore) {
minScore = scores[i];
minIndex = i;
}
if (scores[i] > maxScore) {
maxScore = scores[i];
maxIndex = i;
}
sumScore += scores[i];
}
// 输出最高分、最低分、平均分及其所在下标
printf("所有成绩为:");
for (int i = 0; i < N; i++) {
printf("%d ", scores[i]);
}
printf("\n");
printf("最低分为:%d,所在下标为:%d\n", minScore, minIndex);
printf("最高分为:%d,所在下标为:%d\n", maxScore, maxIndex);
printf("平均分为:%f\n", (float) sumScore / N);
// 逆序排序并输出
for (int i = N - 1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
if (scores[j] < scores[j+1]) {
int temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
printf("逆序排序后的成绩为:");
for (int i = 0; i < N; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
```
输出示例:
```
90 80 70 60 50 40 30 20 10 100
所有成绩为:90 80 70 60 50 40 30 20 10 100
最低分为:10,所在下标为:8
最高分为:100,所在下标为:9
平均分为:55.000000
逆序排序后的成绩为:100 90 80 70 60 50 40 30 20 10
```
阅读全文