输出所有3位数的水仙花数,这个程序哪里出现了问题?
本帖最后由 BudingZY 于 2022-3-29 20:40 编辑int x,y,sum=0,n,flag=0;
for(x=100;x<1000;x++){
y=x;
while(y){
n = y % 10;
sum += n * n * n;
y /= 10;
if(sum == x){
flag=1;
printf("%d = %d ?\n",sum,x);
}
}
if(flag==1) printf("%d是水仙花数\n",x);
sum=0;
flag=0;
}
代码如上,输出结果如下125、216、729不是水仙花数,还是输出了。
但是用下面的形式就可以正常输出。
int x,y,sum=0,n;
for(x=100;x<1000;x++){
y=x;
while(y){
n = y % 10;
sum += n * n * n;
y /= 10;
}
if(sum==x) printf("%d是水仙花数\n",x);
sum=0;
}
输出结果:
5^3=125
6^3=216
9^3=729 jhq999 发表于 2022-3-29 20:54
5^3=125
6^3=216
9^3=729
懂了,感谢{:10_266:}
页:
[1]