读一组实数,遇零终止,打印其中正、负数的个数及各自的总和。一行,若干个实数,实数个数不超过9000个,实数范围为-32768~32767;遇到0表示输入数据结束,后面即使有数也忽略。用c语言编程
时间: 2024-02-13 12:02:58 浏览: 162
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
int main() {
int num, positive_count = 0, negative_count = 0; // 正数个数、负数个数、当前输入的数
int positive_sum = 0, negative_sum = 0; // 正数总和、负数总和
while (scanf("%d", &num) != EOF && num != 0) { // 循环读取实数,遇到0终止
if (num > 0) { // 正数
positive_count++;
positive_sum += num;
} else if (num < 0) { // 负数
negative_count++;
negative_sum += num;
}
}
// 打印结果
printf("正数个数:%d,正数总和:%d\n", positive_count, positive_sum);
printf("负数个数:%d,负数总和:%d\n", negative_count, negative_sum);
return 0;
}
```
程序首先定义了变量`num`、`positive_count`、`negative_count`、`positive_sum`和`negative_sum`,分别表示当前读取的实数、正数个数、负数个数、正数总和和负数总和。程序使用`while`循环读取实数,当遇到0或者输入结束时跳出循环。在循环中,如果读取的实数为正数,则更新正数个数和正数总和;如果为负数,则更新负数个数和负数总和。最后程序打印正数个数、正数总和、负数个数和负数总和,并返回0表示程序运行成功。
阅读全文