从键盘输入若干个学生的C语言成绩,以输入负数作为输入结束标记。用数组和函数实现求解最高分和将所有成绩降序排列。用C语言
时间: 2023-06-13 09:03:16 浏览: 158
以下是代码示例:
```c
#include <stdio.h>
// 定义最大学生数
#define MAX_STUDENTS 100
// 定义函数用于降序排列数组
void sort(int arr[], int len) {
int i, j, temp;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int main() {
int scores[MAX_STUDENTS]; // 存储学生成绩的数组
int i = 0, score, max_score = 0;
// 循环读入学生成绩
while (1) {
printf("请输入学生成绩(负数结束):");
scanf("%d", &score);
if (score < 0) {
break;
}
scores[i++] = score; // 将学生成绩存入数组
if (score > max_score) {
max_score = score; // 更新最高分
}
}
// 输出最高分
printf("最高分为:%d\n", max_score);
// 对数组进行降序排列
sort(scores, i);
// 输出降序排列后的数组
printf("降序排列后的成绩为:\n");
for (int j = 0; j < i; j++) {
printf("%d ", scores[j]);
}
printf("\n");
return 0;
}
```
运行示例:
```
请输入学生成绩(负数结束):85
请输入学生成绩(负数结束):69
请输入学生成绩(负数结束):77
请输入学生成绩(负数结束):92
请输入学生成绩(负数结束):-1
最高分为:92
降序排列后的成绩为:
92 85 77 69
```
阅读全文