c语言:从键盘上输入十个数,统计正数负数和零的个数(用while语句)
时间: 2024-11-27 21:09:42 浏览: 0
在C语言中,你可以使用while循环结构来从键盘输入十个数,并同时统计正数、负数和零的个数。这里是一个简单的示例:
```c
#include <stdio.h>
int main() {
int num, count_pos = 0, count_neg = 0, count_zero = 0;
printf("请输入十个数,输入-1结束:\n");
while (count_pos < 10) {
scanf("%d", &num);
if (num > 0) {
count_pos++;
} else if (num < 0) {
count_neg++;
} else {
count_zero++;
}
}
printf("正数有:%d个\n", count_pos);
printf("负数有:%d个\n", count_neg);
printf("零有:%d个\n", count_zero);
return 0;
}
```
这个程序首先定义了三个计数器(count_pos、count_neg 和 count_zero),然后进入while循环,只要正数的数量小于10。用户通过`scanf`函数输入数字,根据条件判断是增加相应的计数器。当用户输入-1时,循环结束,最后打印出各数类型的计数。
相关问题
c语言编程实现:从键盘输入一些整数,以0为结束标志,统计其中正数和负数的个数。
在C语言中,你可以使用循环结构来实现这个功能。首先,我们需要创建一个while循环来持续读取用户输入,直到遇到0为止。然后,我们可以利用条件判断语句来区分每个输入的整数是正数、负数还是零。以下是简单的代码示例:
```c
#include <stdio.h>
int main() {
int num, count_pos = 0, count_neg = 0; // 初始化正数和负数计数器
printf("请输入整数(以0结束):");
while (scanf("%d", &num) == 1) { // 通过scanf获取并检查输入
if (num > 0) {
count_pos++;
} else if (num < 0) {
count_neg++;
}
// 清除输入缓冲区,防止后续输入干扰
scanf("%*[^\n]");
}
printf("正数有 %d 个,负数有 %d 个。\n", count_pos, count_neg);
return 0;
}
```
在这个程序中,`scanf()`函数用于读取用户的输入,并通过`if...else if...`判断输入的数字是否为正数或负数。最后,我们打印出正数和负数的数量。
C语言用do while语句实现统计正负数的个数,正负数和零用键盘输入
在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`跳出循环。最后输出统计结果。
阅读全文