读一组实数,遇零终止,打印其中正、负数的个数及各自的总和。 输入 一行,若干个实数,实数个数不超过9000个,实数范围为-32768~32767;遇到0表示输入数据结束,后面即使有数也忽略。 输出 输出包含两行; 第一行输出正数个数和所有正数的和(保留2位小数); 第二行输出负数个数和所有负数的和(保留2位小数)。c语言
时间: 2024-02-13 15:06:35 浏览: 146
可以使用循环读入实数,并统计正数和负数的个数和总和,C语言代码如下:
```c
#include <stdio.h>
int main() {
int positive = 0; // 正数个数
int negative = 0; // 负数个数
float sum_positive = 0; // 所有正数的和
float sum_negative = 0; // 所有负数的和
float x; // 临时存储读入的实数
while (scanf("%f", &x) == 1 && x != 0) { // 循环读入实数,直到遇到 0
if (x > 0) { // 如果是正数
positive++;
sum_positive += x;
} else { // 如果是负数
negative++;
sum_negative += x;
}
}
printf("%d %.2f\n", positive, sum_positive); // 输出正数个数和所有正数的和
printf("%d %.2f\n", negative, sum_negative); // 输出负数个数和所有负数的和
return 0;
}
```
在循环中,首先读入一个实数,并判断是否等于 0,如果是则退出循环;否则,根据实数的正负性,更新正数个数和总和,或者负数个数和总和。
在循环结束后,按照要求输出正数个数和所有正数的和,以及负数个数和所有负数的和,注意输出格式要求。
阅读全文