C语言高手看看这题哪错了?

来源:百度知道 编辑:UC知道 时间:2024/09/24 00:48:10
求水仙花数,我编的程序如下,运行结果是一大串的153,407等等.请问哪错了!
#include"stdio.h"
main()
{int m,a=1,b=0,c=0;
for(a=1;a<=9;a++)
{for(b=0;b<=9;b++)
{for(c=0;c<=9;c++)
{if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
m=a*100+b*10+c;
printf("%d\n",m);
}
}
}
}

#include"stdio.h"
main()
{int m,a=1,b=0,c=0;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
{/*这里加上一对{ } 其他的去掉就可以了(这个不去掉也没有关系,只是为了更简化)*/
m=a*100+b*10+c;
printf("%d\n",m);
}
}

#include"stdio.h"
main()
{
int m,a=1,b=0,c=0;
for(a=1;a<=9;a++)
{
for(b=0;b<=9;b++)
{
for(c=0;c<=9;c++)
{
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
{
m=a*100+b*10+c;
printf("%d\n",m);
}
}
}
}
}
你上面的写法不容易看
你要的是数字合你要求时输出
不合要求不输出
如果是你写的那样它会没个数字都输出的
有时格式很重要
要的格式改错很容易

一楼和四楼说的就差不多了
if下只能跟一条语句,要不就要加{},否则就不在if下执行了.
所以执行到407以后if 都成立,输出900-407个407