问题描述:给定 N
个正整数,请统计奇数和偶数各有多少个?
这是一道对我来说有点意思的题,因为可以用到循环和数组,而且稍稍有点元素的概念,下面会详细解释一下,话不多说,代码来起!
#include<stdio.h>
int main()
{
int N,shuzu[1000],a,b,c,d;
c=0;
d=0;
scanf("%d\n",&N);
for(a=0;a<N;a++){
scanf("%d",&shuzu[a]);
}
for(b=0;b<N;b++){
if(shuzu[b]%2!=0){
c++;
}
else{
d++;
}
}
printf("%d %d",c,d);
return 0;
}
我写的是N<=1000的情况,如果要求的是别的N的范围,可自行将shuzu[1000]内的1000替换成别的,其余不变。
在此,我先介绍一下数组中的元素是按下标递增的方式连续排列,数组元素的下标范围是从0开始,到<元素个数>-1为止。比如,我定义的数组shuzu[1000],它的下标范围是0~999。
这样,明白了以上内容,理解起来就容易多了。
我来解释一下代码,首先,定义后,输入要区分统计的数有多少个,也就是N。
随后,要分别输入这N个数具体是什么,与此同时,将这几个数写进数组shuzu[ ]内。在这里,将借用a来实施,结合上述知识点,就不难理解for(a=0;a<N;a++)中为什么a=0,且a<N。这样我们可以得到具有N个元素的数组,那N个数依次赋给从shuzu[0]到shuzu[N-1]这N个元素。
然后,借用for循环让b依次将shuzu[ ]内的元素提出(下标与a类似),参与if--else过程。其中,shuzu[b]%2!=0的就是奇数,用c来记录其个数;不满足的就是偶数,用d来记录其个数。
是不是很简单呢?嘿嘿,欢迎大家一起讨论啊!