c语言输入一批非零的整数,以输入零表示结束,求这批数据的平均值并输出。
时间: 2024-03-09 13:47:35 浏览: 128
好的,对于这个问题,我们可以使用一个循环来依次读入输入的整数,然后累加这些数的值,并记录输入的非零整数的个数。当读入的整数为零时,计算平均值并输出即可。以下是一个示例代码:
```c
#include <stdio.h>
int main()
{
int n; // 存放输入的整数
int count = 0; // 存放输入的非零整数的个数
int sum = 0; // 存放输入的非零整数的和
printf("请输入一批非零的整数,以输入零表示结束:\n");
while (1) {
scanf("%d", &n);
if (n == 0) {
break;
}
sum += n;
count++;
}
if (count == 0) {
printf("没有输入任何非零整数!\n");
} else {
printf("平均值为:%f\n", (float)sum / count);
}
return 0;
}
```
在上面的代码中,我们使用一个 while 循环来读入输入的整数,如果读入的整数为零,就跳出循环。在循环中,我们累加输入的非零整数的值,并记录它们的个数。最后,我们判断是否有输入非零整数,如果有,就计算平均值并输出;否则,就提示用户没有输入任何非零整数。
相关问题
C语言输入一批非零的整数,以输入零表示结束,求这批数据的平均值并输出
好的,针对你的问题,我可以给出以下C语言的代码实现:
```c
#include <stdio.h>
int main() {
int num, sum = 0, count = 0;
float avg;
printf("请输入一批非零的整数(以输入0表示结束):\n");
while (1) {
scanf("%d", &num);
if (num == 0) {
break;
}
sum += num;
count++;
}
avg = (float) sum / count;
printf("这批数据的平均值为:%.2f\n", avg);
return 0;
}
```
这个程序会不断地读取输入的整数,直到读取到0为止。在读取非零整数时,将其加入到sum中,并将计数器count加1。最后,利用sum和count的值计算平均值,将结果输出。
注意,为了避免整数除法的问题,需要将sum强制类型转换为float类型。`%.2f`表示输出结果保留两位小数。
用C语言输入10个整数,输出这批整数的最大值、最小值和平均值。
好的,以下是用C语言实现输入10个整数,输出最大、最小值和平均值的代码:
```c
#include <stdio.h>
int main()
{
int i, n;
int max, min, sum;
float avg;
printf("请输入10个整数:\n");
// 输入第一个整数并初始化 max、min、sum
scanf("%d", &n);
max = min = sum = n;
// 循环输入并更新 max、min、sum
for (i = 2; i <= 10; ++i) {
scanf("%d", &n);
if (n > max) max = n;
if (n < min) min = n;
sum += n;
}
// 计算平均值
avg = (float)sum / 10;
// 输出结果
printf("最大值:%d\n", max);
printf("最小值:%d\n", min);
printf("平均值:%f\n", avg);
return 0;
}
```
希望对您有帮助!
阅读全文