C语言用do while语句实现统计正负数的个数,正负数和零用键盘输入
时间: 2024-11-03 19:22:45 浏览: 22
在C语言中,你可以使用`do-while`循环结合条件判断来实现这个功能。下面是一个简单的示例程序,它会不断地从用户处获取输入,直到输入不是数字为止,并统计正数、负数和零的个数:
```c
#include <stdio.h>
int main() {
int num = 0, positive = 0, negative = 0;
do {
printf("请输入一个整数(输入非数字结束): ");
char input[10];
fgets(input, sizeof(input), stdin);
// 去除换行符
input[strlen(input) - 1] = '\0';
// 判断输入是否为整数
if (sscanf(input, "%d", &num) == 1) {
if (num > 0)
positive++;
else if (num < 0)
negative++;
else // 如果等于0
num++; // 防止再次检查0,这里加1跳过本次循环
} else {
break; // 输入非数字,退出循环
}
} while (true);
printf("正数有 %d 个,负数有 %d 个,零有 %d 个。\n", positive, negative, num - positive - negative);
return 0;
}
```
在这个程序中,我们先初始化计数器 `positive`, `negative` 和一个临时变量 `num`。然后进入一个无限循环(`do...while(true)`),读取用户的输入并尝试解析为整数。如果输入有效,我们会根据数值的正负增加相应的计数;如果无效(即非数字),就通过`break`跳出循环。最后输出统计结果。
阅读全文