C语言编程:找出若干个非零数中的最小值m以及它们的平均值a。 要求:若干个数由键盘输入,每次输入一个赋给变量x,x为零时,结束输入。
时间: 2024-12-15 12:25:53 浏览: 9
在C语言中,你可以使用循环结构来遍历用户输入的数字,同时记录下最小值`m`和累加器`sum`(用于计算平均值)。当遇到0时,表示输入结束,然后用总数量减去1得到有效数值的数量并除以这个数量得到平均值`a`。
以下是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int x, m = INT_MAX; // 初始最小值设为整型最大值
float sum = 0, count = 0;
printf("Enter non-zero numbers (type 0 to stop):\n");
while (scanf("%d", &x) == 1 && x != 0) { // 当输入的是非零数时
if (x < m) {
m = x; // 更新最小值
}
sum += x; // 累加数值
count++; // 增加计数
}
if (count > 0) { // 防止除以0的情况
float a = sum / count;
printf("The smallest number is: %d\n", m);
printf("The average of the non-zero numbers is: %.2f\n", a);
} else {
printf("No non-zero numbers were entered.\n");
}
return 0;
}
```
在这个程序中,我们使用`scanf`读取用户的输入,然后检查是否为0。如果不是,则更新最小值`m`、累加和`sum`以及计数`count`。一旦遇到0,跳出循环后计算并打印平均值。如果所有输入都是0,那么就提示没有找到非零数。
阅读全文