c语言实践 统计输入的一串正整数里面奇数和偶数的个数
怎么考虑这个问题。
首先先确定肯定是需要一个变量保存输入的数据的,我们叫它input,最后结果要的是个数,所以需要另外两个变量来保存奇数的个数和偶数的个数。
int input
int countJ
int cuntO
紧接着肯定需要一个循环,我们先考虑循环体内部每次要执行的东西。
{
判断这个数是偶数还是奇数,如果是奇数则countJ++,否则countO++;
}
最后输出countJ和countO的数值,那么大概的框架已经出来了。
接着考虑循环的条件是什么?如果输入的数据是-1则循环,对不对,所以是
while(input!=-1)
{
判断这个数是偶数还是奇数,如果是奇数则countJ++,否则countO++;
}
那么input的值是哪里来的呢?是不是必须前面要有个scanf啊,所以代码是这样的:
scanf_s("%d",&input);
while(input!=-1)
{
判断这个数是偶数还是奇数,如果是奇数则countJ++,否则countO++;
}
这样就可以了吗?不行啊,因为只scanf了一次数据,那就只能读取到一个数据,所以再循环内部还需要scanf一次
所以代码就变成了
scanf_s("%d",&input);
while(input!=-1)
{
判断这个数是偶数还是奇数,如果是奇数则countJ++,否则countO++;
scanf_s("%d",&input);
}
最后代码如下面所示:
int input = 0; int countJ = 0; int countO = 0; scanf_s("%d",&input); while (input != -1) { //偶数是可以被二整除的,所以偶数对2取余肯定是0 if ((input%2)== 0) { countO++; } else { countJ++; } scanf_s("%d",&input); } printf("jishugeshu:%d oushugeshu %d",countJ,countO);