从读入的整数数据中,统计大于零的整数个数和小于零的整数个数。用输入零来结束输入,程序中用变量 i 统计大于零的整数个数,用变量 j 统计小于零的整数个数。 输入格式: 在一行中输入n(n<20)个用空格间隔的整数,最后输入0结束输入,数据之间只能用1个空格间隔。 输出格式: 在两行中分别按照“i=正数个数”和“j=负数个数”的格式输出结果,个数均原样输出,没有列宽控制
时间: 2025-03-25 11:22:37 浏览: 61
下面是满足题目要求的C语言程序,能够统计大于零的整数个数和小于零的整数个数,并通过输入0结束数据输入:
```c
#include <stdio.h>
int main() {
int number;
int i = 0; // 统计大于零的整数个数
int j = 0; // 统计小于零的整数个数
printf("请输入若干个整数(用空格分开),以0结束:\n");
while (scanf("%d", &number) != EOF && number != 0) {
if (number > 0) {
i++; // 若当前数大于零,则i++
} else if (number < 0) {
j++; // 若当前数小于零,则j++
}
}
// 按照给定格式输出结果
printf("i=%d\n", i);
printf("j=%d\n", j);
return 0;
}
```
### 程序运行过程解析:
1. 定义了两个变量 `i` 和 `j` 分别用于记录正整数和负整数的个数。
2. 运行一个无限循环 (`while`) 来连续读取用户输入直到遇到 `0` 或者到达文件结尾(`EOF`)。
3. 根据每次读入的数值大小判定其属于哪一类(>0,<0),然后更新相应的统计量。
4. 循环结束后打印出正数个数(i)以及负数个数(j)。
---
#### 示例测试情况:
假设我们有下面一组输入序列:
**输入:**
```
5 -3 8 -6 0
```
那么应该得到这样的输出结果:
**输出:**
```
i=2
j=2
```
这是因为在这串数字中有2个正值即5和8;还有2个负值分别为-3与-6。
---
阅读全文
相关推荐
















