用C语言编程输入一组实数,遇零终止,输出其正数和负数的个数并求其和
时间: 2024-02-13 10:07:12 浏览: 108
好的,以下是用C语言编写的程序,可以实现你的需求:
```c
#include <stdio.h>
int main()
{
float num, sum_pos = 0, sum_neg = 0;
int cnt_pos = 0, cnt_neg = 0;
printf("请输入一组实数,遇零终止:\n");
while(1)
{
scanf("%f", &num);
if(num == 0)
break;
else if(num > 0)
{
cnt_pos++;
sum_pos += num;
}
else
{
cnt_neg++;
sum_neg += num;
}
}
printf("正数个数:%d,和:%f\n", cnt_pos, sum_pos);
printf("负数个数:%d,和:%f\n", cnt_neg, sum_neg);
return 0;
}
```
程序的思路很简单,就是使用一个while循环不断输入实数,如果输入的是0就跳出循环,否则分别计算正数和负数的个数和和。最后输出计数结果和和值即可。
相关问题
用C语言读一组实数,遇零终止打印其中正负的个数及其总和
可以使用循环语句和scanf函数来读取一组实数,并在遇到0时停止循环统计结果。
以下是示例代码:
```c
#include <stdio.h>
int main() {
float num;
int positive_count = 0;
int negative_count = 0;
float positive_sum = 0;
float negative_sum = 0;
printf("请输入一组实数,以0结束:\n");
scanf("%f", &num);
while (num != 0) {
if (num > 0) {
positive_count++;
positive_sum += num;
} else {
negative_count++;
negative_sum += num;
}
scanf("%f", &num);
}
printf("正数个数:%d,总和:%f\n", positive_count, positive_sum);
printf("负数个数:%d,总和:%f\n", negative_count, negative_sum);
return 0;
}
```
在上面的代码中,我们首先使用printf函数提示用户输入一组实数,并使用scanf函数读取第一个实数。然后我们使用while循环,当读取到的实数不为0时,根据实数的正负性分别统计正数个数、正数总和、负数个数和负数总和,并继续读取下一个实数,直到读取到0为止。最后,我们打印正数个数、正数总和、负数个数和负数总和,并返回0以表示程序正常结束。
用c语言写读一组实数,遇零终止,打印其中正、负数的个数及各自的总和。输入一行,若干个实数,实数个数不超过9000个,实数范围为-32768~32767;遇到0表示输入数据结束,后面即使有数也忽略。输出包含两行; 第一行输出正数个数和所有正数的和(保留2位小数); 第二行输出负数个数和所有负数的和(保留2位小数)
好的,以下是用 C 语言编写的程序:
```c
#include <stdio.h>
int main() {
int positive_count = 0;
int negative_count = 0;
float positive_sum = 0;
float negative_sum = 0;
while (1) {
float num;
if (scanf("%f", &num) != 1 || num == 0) {
break;
}
if (num > 0) {
positive_count++;
positive_sum += num;
} else {
negative_count++;
negative_sum += num;
}
}
printf("%d %.2f\n", positive_count, positive_sum);
printf("%d %.2f\n", negative_count, negative_sum);
return 0;
}
```
你可以将此代码保存为一个 .c 文件,然后在命令行中使用 C 编译器编译并运行。程序会等待你输入一行实数,以 0 结束。输入结束后,程序会输出正数个数和所有正数的和,以及负数个数和所有负数的和。
阅读全文
相关推荐













