用C语言编写程序,实现以下成绩处理功能: (1)输入10个成绩(整数类型,数组名记为a) ; (2)计算并输出最高分(记为Max)、最低分(记为Min)与成绩中值(记为Midd),其中成绩中 值为最高分与最低分的平均值(保留一位小数输出); (3)将Midd及以上的成绩归为A档,Midd以下的成绩归为B档,统计并输出A、B两档的人数。 要求最大值、最小值分别用函数max、min函数实现,其它功能在主函数中实现,max、min的结构如下:
时间: 2023-12-22 08:05:54 浏览: 18
以下是用C语言编写的程序,实现成绩处理功能:
```c
#include <stdio.h>
// 定义max函数,计算最大值
int max(int a[], int n) {
int max = a[0];
for (int i = 1; i < n; i++) {
if (a[i] > max) {
max = a[i];
}
}
return max;
}
// 定义min函数,计算最小值
int min(int a[], int n) {
int min = a[0];
for (int i = 1; i < n; i++) {
if (a[i] < min) {
min = a[i];
}
}
return min;
}
int main() {
int a[10]; // 定义数组,存放成绩
int n = 10; // 数组长度
int max_score, min_score, midd_score, a_count = 0, b_count = 0; // 定义最大值、最小值、成绩中值、A档人数、B档人数
// 输入成绩
printf("请输入10个成绩:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 计算最大值、最小值、成绩中值
max_score = max(a, n);
min_score = min(a, n);
midd_score = (max_score + min_score) / 2;
// 统计A档、B档人数
for (int i = 0; i < n; i++) {
if (a[i] >= midd_score) {
a_count++;
} else {
b_count++;
}
}
// 输出结果
printf("最高分:%d\n", max_score);
printf("最低分:%d\n", min_score);
printf("成绩中值:%.1f\n", (float)(max_score + min_score) / 2);
printf("A档人数:%d\n", a_count);
printf("B档人数:%d\n", b_count);
return 0;
}
```
注意,程序中的成绩中值指的是最高分与最低分的平均值,而不是中位数。