#include<stdio.h>
int isEven(int m) //判断能否为偶数
{
int ret;
if(m%2 == 0)
ret = m;
else
ret = 0;
return ret; //为什么这子程序处理后没有输出0
}
int is(int m)//这种判断方式0没有少
{
return m%2 == 0?1:0;
}
int main()
{
int a[10];
int i;
for(i=0;i<9;i++)
{
if(isEven(i))
printf(“%d\n”,i);
}
printf(“\n\n”);
for(i=0;i<9;i++)
{
if(is(i))
printf(“%d\n”,i);
}
return 0;
}
int isEven(int m) //判断能否为偶数
{
int ret;
if(m%2 == 0)
ret = m;
else
ret = 0;
return ret; //为什么这子程序处理后没有输出0
}
int is(int m)//这种判断方式0没有少
{
return m%2 == 0?1:0;
}
int main()
{
int a[10];
int i;
for(i=0;i<9;i++)
{
if(isEven(i))
printf(“%d\n”,i);
}
printf(“\n\n”);
for(i=0;i<9;i++)
{
if(is(i))
printf(“%d\n”,i);
}
return 0;
}
解决方案
20
isEven()返回的是m,所以m是0的时候也就和奇数一样返回0了。
而is()返回的就很明确,不是1就是0
而is()返回的就很明确,不是1就是0
20
isEven(i)中,i=0,函数返回值是0,判断条件为假,所以0不会输出;
is(i)中i=0,return m%2 == 0?1:0; 返回的是1,判断条件为真,所以0会输出。
is(i)中i=0,return m%2 == 0?1:0; 返回的是1,判断条件为真,所以0会输出。