扫描完所有的数组元素后,我怎样才能分别打印偶数和奇数。
#include <stdio.h>
void main()
{
int arr[100];
int n,i;
printf("Number of Elements:-");
scanf("%d",&n);
for (i=0;i<=n;i=i+1)
{
printf("Elem %d:-",i);
scanf("%d",&arr[i]);
}
for(i=0;i<=n;i=i+1)
{
if(arr[i]/2==0)
{
printf("Even%d\n",arr[i]);
}
else
{
printf("odd%d\n",arr[i]);
}
}
}
输出:
Number of Elements:-4
Elem 0:-1
Elem 1:-2
Elem 2:-3
Elem 3:-4
Elem 4:-5
Even1
odd2
odd3
odd4
odd5
2条答案
按热度按时间mznpcxlj1#
编写循环的传统方法是:
在C中,大多数循环的初始条件为
var=0
,在var<target
时运行,并以++var
递增(有些人更喜欢var++
)测试一个数是偶数还是奇数的传统方法是使用模(
%
)运算符,而不是除法(/
)。为什么像
10/2
这样的表达式会等于0
??10
显然是偶数,除以2
得到5
,而不是零!!?把这些加在一起,我得到了:
输出:
2g32fytz2#
main()
返回int
,除非您使用Microsoft扩展。请使用常量LEN
而不是硬编码的幻数。已添加对数组大小的边界检查,并检查了scanf()
的返回值以确保您读取了一个值。本地化了循环变量i
,并使用了cfor(int i = 0; i < n; i++)
中循环的常见习惯用法。模运算符%
,特别是,% 2
对偶数返回0,对奇数返回1。“分别地”对我来说意味着两个循环。下面是相应的输出: