检查一下c++程序的错误

发布时间:2019-08-01 06:33:49

#include<iostream>

using namespace std;

int main()

{

  long long int a=99,b,x,y,z;

  while(a<1000)

  {

    a+1;

    while(1)

    {

      x=a%100;

      y=a%10-10*x;

      z=a-100*x-10*y;

      if(x*x*x+y*y*y+z*z*z==a)

        cout<<a;

      else

      {

     b=a;

        break; 

   }

    }

  }

  return 0;

}

推荐回答

程序是求1000以内的水仙花数,作了较多的改错,改后的程序如下:

#include<iostream>using namespace std;int main(){int a=99,b,x,y,z;while(a<999){a++;while(1){z=a%10;y=a/10%10;x=a/100;if(x*x*x+y*y*y+z*z*z==a)cout << a<<endl;//else{b=a;}//break; }}return 0;}

程序的运行结果如下:

其他回答

这个你可以直接检查啊

中间那个while(1)的循环没法跳出来啊,一直运行,没法停止。

看上去你是想求3位的水仙花数的,但算法完全不对

1.  a+1;不能改变a的,所以大循环是死循环

2.求每一位的,x,y,z根本不对,对a=123

x=23 ,y=-227,z= 93

3.你的内循环没以有任何意义 ,因为不是水仙花,直接退出了

4.求个3位水仙花,根本不用long long

以下是改好的及结果

以上问题属网友观点,不代表本站立场,仅供参考!