BudingZY 发表于 2022-3-29 20:34:02

输出所有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;
      }
输出结果:



jhq999 发表于 2022-3-29 20:54:11

5^3=125
6^3=216
9^3=729

BudingZY 发表于 2022-3-29 20:56:39

jhq999 发表于 2022-3-29 20:54
5^3=125
6^3=216
9^3=729

懂了,感谢{:10_266:}
页: [1]
查看完整版本: 输出所有3位数的水仙花数,这个程序哪里出现了问题?