一、基础实现(适用于n≤10的情况)
```c
include
define N 10 // 定义常量N为10
int main() {
int a[N] = {0}; // 初始化数组
int min = 0, max = 0;
float sum = 0;
int i;
printf("请输入 %d 个数:\n", N);
for (i = 0; i < N; i++) {
scanf("%d", &a[i]);
sum += a[i];
if (a[i] > max) max = a[i];
if (a[i] < min) min = a[i];
}
printf("最大值: %d\n", max);
printf("最小值: %d\n", min);
printf("平均值: %.2f\n", (float)sum / N);
return 0;
}
```
说明:该程序通过循环读取10个整数,使用条件判断更新最大值和最小值,并计算平均值。
二、动态输入实现(适用于任意n)
```c
include
int main() {
int n;
printf("请输入要输入的数的个数: ");
scanf("%d", &n);
if (n <= 0) {
printf("输入的个数必须大于0\n");
return 1;
}
float sum = 0;
float num;
printf("请输入 %d 个数字:\n", n);
for (int i = 0; i < n; i++) {
scanf("%f", &num);
sum += num;
if (num > sum / n) max = num; // 更新最大值
if (num < sum / n) min = num; // 更新最小值
}
printf("最大值: %.2f\n", max);
printf("最小值: %.2f\n", min);
printf("平均值: %.2f\n", sum / n);
return 0;
}
```
说明:该程序先读取n的值,再动态读取n个浮点数。通过维护`sum`和`sum/n`来实时更新最大值和最小值,避免使用固定大小的数组。
三、多组数据批量处理
若需处理多组数据(如题目5所述),可扩展代码如下:
```c
include
void solve() {
int n;
scanf("%d", &n);
if (n <= 0) return;
int arr[n];
printf("请输入 %d 个整数:\n", n);
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
int max = arr, min = arr;
float sum = arr;
for (int i = 1; i < n; i++) {
if (arr[i] > max) max = arr[i];
if (arr[i] < min) min = arr[i];
sum += arr[i];
}
printf("最大值: %d\n", max);
printf("最小值: %d\n", min);
printf("平均值: %.2f\n", (float)sum / n);
}
int main() {
int t;
scanf("%d", &t);
while (t--) solve();
return 0;
}
```
说明:该程序先读取组数`t`,然后对每组数据调用`solve`函数,分别计算并输出最大值、最小值和平均值。
注意事项
输入验证:
建议添加输入验证,确保n为正整数,避免数组越界。
数据类型选择:
若输入可能包含小数,建议使用`float`或`double`类型。
初始化:
将`min`和`max`初始化为第一个输入值,避免未定义行为。
以上代码可根据具体需求选择适合的实现方式。