文案桥梁网—你的文案搜索专家

文案桥梁网—你的文案搜索专家

c语言:输入n个数

59

一、基础实现(适用于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`初始化为第一个输入值,避免未定义行为。

以上代码可根据具体需求选择适合的实现方式。