输入一批非零数,直到输入零为止,计算其中奇数的平均值和偶数的乘积。c语言
时间: 2023-06-14 13:03:03 浏览: 332
C语言实验)输入若干非0实数直到输入0停止,要求输入的实数最大不超过20个,统计其中正数个数和负数个数。
以下是一个实现你所需功能的 C 语言程序:
```c
#include <stdio.h>
int main() {
int num, odd_sum = 0, odd_count = 0, even_product = 1;
printf("请输入一批非零数,以 0 结束:\n");
while (1) {
scanf("%d", &num);
if (num == 0) {
break;
}
if (num % 2 == 0) {
even_product *= num;
} else {
odd_sum += num;
odd_count++;
}
}
if (odd_count > 0) {
float odd_avg = (float) odd_sum / odd_count;
printf("奇数的平均值为 %.2f\n", odd_avg);
} else {
printf("没有奇数\n");
}
if (even_product > 0) {
printf("偶数的乘积为 %d\n", even_product);
} else {
printf("没有偶数\n");
}
return 0;
}
```
程序先提示用户输入一批非零数,并使用一个 `while` 循环来不断读入数字,直到读入 0 为止。在循环中,如果读入的数字是偶数,就将它累乘到 `even_product` 中;如果是奇数,则将它累加到 `odd_sum` 中,并将 `odd_count` 加一。循环结束后,根据 `odd_count` 和 `even_product` 是否大于零来判断是否有奇数和偶数,如果有就计算平均值和乘积并输出。
阅读全文