以下是一个简单的C语言程序,该程序允许用户录入一系列的成绩,然后计算并输出这些成绩的最大值、最小值和平均值:
```c
#include
#define MAX_SCORES 100 // 假设最多录入100个成绩
int main() {
int scores[MAX_SCORES];
int n, i;
int maxScore = 0, minScore = 101; // 初始化最大值为0,最小值为比可能的任何成绩都大的数
float sum = 0.0, avg;
printf("请输入成绩数量(不超过%d个): ", MAX_SCORES);
scanf("%d", &n);
if (n <= 0 || n > MAX_SCORES) {
printf("输入的成绩数量无效!\n");
return 1;
}
printf("请输入%d个成绩:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &scores[i]);
// 更新最大值和最小值
if (scores[i] > maxScore) {
maxScore = scores[i];
}
if (scores[i] < minScore) {
minScore = scores[i];
}
// 计算成绩总和
sum += scores[i];
}
// 计算平均值
avg = sum / n;
// 输出结果
printf("最大值: %d\n", maxScore);
printf("最小值: %d\n", minScore);
printf("平均值: %.2f\n", avg);
return 0;
}
```
运行这个程序,它将提示你输入成绩的数量,然后输入具体的成绩。之后,它将计算并输出这些成绩的最大值、最小值和平均值。
注意:
* 这个程序假设用户会输入有效的成绩数量(不超过MAX_SCORES),并且每个成绩都是有效的整数。
* 为了简化程序,我们假设所有成绩都是非负的,所以最小值的初始值被设置为比任何可能的成绩都大的数(例如101)。如果可能的话,你可以添加额外的输入验证来确保输入的成绩是有效的。
* 平均值是使用`float`类型计算的,以确保有足够的精度。如果你需要更高的精度,可以考虑使用`double`类型。