为什么去掉else{return(0);} 之后会输出每一个数,而不只是水仙数?求大神教一下
#include<stdio.h>
int m(int a)
{
if(a<=999&&a>=100)
{
int b,c,d;
b=a/100;
c=a/10%10;
d=a%10;
if(b*b*b+c*c*c+d*d*d==a)
{
return(1);
}
else
{
return(0);
}
}
}
main()
{
int i;
printf("水仙数有:");
for(i=100;i<=999;i++)
{
if(m(i)==1)
{
printf("%d\t",i);
}
}
}
去掉else{return(0);}之后
return 0;代表不是水仙数,返回值为0
下面的else判断返回值是1还是0,是1的时候才输出
当你去掉 else{return(0);} 时 , 函数中没有返回值,于是这个函数返回了exa中存储的值 ;不同编译器不同,可能得到的结果就不同,比如说,我通过去掉else{return(0);}得到的结果是:
水仙数有:100 153 370 371 407