10:46 第5次作业(函数) 30.简答题 编写程序,实现以下成绩处理功能: (1)输入10个成绩(整数类型,数组名记为 a); (2) 计算并输出最高分(记为Max)、最低 分(记为Min) 与成绩中值(记为Midd),其 中成绩中 值为最高分与最低分的平均值(保留一位小数 输出); (3) 将Midd及以上的成绩归为A档,Midd以 下的成绩归为B档,统计并输出A、B两档的人 数。 要求最大值、最小值分别用函数max、min函 数实现,其它功能在主函数中实现,max、 n的结构如下: int max(int al) //求数组a的最大值 int min(int al)
时间: 2024-02-01 18:16:10 浏览: 58
【数据库作业14】第五章: 数据库完整性 习题 + 存储过程
以下是实现上述功能的代码:
```c
#include <stdio.h>
int max(int a[], int n) {
int i, max = a[0];
for (i = 1; i < n; i++) {
if (a[i] > max)
max = a[i];
}
return max;
}
int min(int a[], int n) {
int i, min = a[0];
for (i = 1; i < n; i++) {
if (a[i] < min)
min = a[i];
}
return min;
}
int main() {
int a[10], i, max_score, min_score, sum = 0, count_a = 0, count_b = 0;
float midd_score;
printf("请输入10个成绩:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
sum += a[i];
}
max_score = max(a, 10);
min_score = min(a, 10);
midd_score = (max_score + min_score) / 2.0;
printf("最高分:%d\n", max_score);
printf("最低分:%d\n", min_score);
printf("成绩中值:%.1f\n", midd_score);
for (i = 0; i < 10; i++) {
if (a[i] >= midd_score)
count_a++;
else
count_b++;
}
printf("A档人数:%d\n", count_a);
printf("B档人数:%d\n", count_b);
return 0;
}
```
函数 `max` 和 `min` 分别用于求取数组中的最大值和最小值。主函数中,首先输入 10 个成绩,并计算它们的和。然后调用 `max` 和 `min` 函数分别求取最高分和最低分,并计算成绩中值。最后遍历数组,统计 A 档和 B 档的人数并输出。
阅读全文