#include
main()
{
int a,b,c,d,e,f;
for(d=1;d<=1000;d++)
{
c=0;
if(d<100)
{
a=d/10;
b=d%10;
c=a*a*a+b*b*b;
if(c==d)printf("%d\t",d);
}
else if(100<=d<1000)
{
a=d/100;
b=(d%100)/10;
e=d%10;
c=a*a*a+b*b*b+e*e*e;
if(c==d)printf("%d\t",d);
}
else if(d=1000)
{
a=d/1000;
b=(d/100)%10;
e=(d%100)/10;
f=d%10;
c=a*a*a+b*b*b+e*e*e+f*f*f;
if(c==d)printf("%d\t",d);
}
}
}
else if(d=1000)
{
a=d/1000;
b=(d/100)%10;
if(d=1000) 这个地方是不是少了一个=号, 我加上=号的结果是:
1
153
370
371
407
不太清楚代码的期望输出是什么。
但从语法来讲,有这样两处:
1 如果原意是想判断d大于等于且小于100,那么
else if(100<=d<1000)
应该改成:
else if(100<=d && d<1000)
2 如果原意是想判断d是否等于1000,那么
else if(d=1000)
应该改成:
else if(d==1000)
也算是初学时易错的地方,注意一下就好了。