从键盘输入若干个学生的C语言成绩,以输入负数作为输入结束束标记。用数组和函数实现求解最高分和将所有成绩降序排列。
时间: 2023-06-18 13:02:21 浏览: 125
以下是用 C 语言实现的代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
void sort(int arr[], int size);
int max(int arr[], int size);
int main() {
int arr[MAX_SIZE], size = 0, i = 0;
int input;
printf("请输入学生的成绩(以负数作为输入结束标记):\n");
// 读入成绩
do {
scanf("%d", &input);
if (input >= 0) {
arr[size++] = input;
}
} while (input >= 0 && size < MAX_SIZE);
// 计算最高分
int max_score = max(arr, size);
printf("最高分为:%d\n", max_score);
// 对成绩进行排序
sort(arr, size);
// 输出排序后的成绩
printf("成绩降序排列:\n");
for (i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void sort(int arr[], int size) {
int i, j, temp;
for (i = 0; i < size; i++) {
for (j = i + 1; j < size; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
int max(int arr[], int size) {
int i, max = arr[0];
for (i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
```
使用方法:运行程序后,按照提示输入学生的成绩,输入负数即可结束输入。程序会输出最高分和成绩降序排列。
阅读全文