读一组实数,遇到零终止,打印其中正负数的个数级各自的总和
时间: 2023-12-02 17:03:23 浏览: 66
好的,我会根据您的要求进行回答。根据您的问题,这是一个读取实数并统计正负数个数以及它们的总和的问题。以下是解决方案:
```c
#include <stdio.h>
int main() {
double num, pos_sum = 0, neg_sum = 0;
int pos_cnt = 0, neg_cnt = 0;
printf("请输入一组实数(遇到零终止):\n");
while (scanf("%lf", &num) == 1 && num != 0) {
if (num > 0) {
pos_cnt++;
pos_sum += num;
} else {
neg_cnt++;
neg_sum += num;
}
}
printf("正数个数:%d,正数总和:%lf\n", pos_cnt, pos_sum);
printf("负数个数:%d,负数总和:%lf\n", neg_cnt, neg_sum);
return 0;
}
```
上述程序中,我们定义了双精度浮点变量 `num`,正数个数和总和变量 `pos_cnt` 和 `pos_sum`,负数个数和总和变量 `neg_cnt` 和 `neg_sum`,并初始化它们为 0。接着使用 `while` 循环读取输入的实数,如果读取成功且该实数不为零,则根据实数的正负性更新相应的计数器和总和变量。最后,输出正负数的个数和总和即可。
希望这个程序可以解决您的问题!
阅读全文