c++语言 打印所有水仙花数

/*打印所有水仙花数 【循环练习】
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。
例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 Output:
153
???
???
???
输入

输出
所有的水仙花数,从小的开始。每行一个
*/
#include<iostream>
using namespace std;

int main()
{
int x,a,b,c;
a=x/100;
b=x%100/10;
c=x%10;
for(x=100;x<=999;x++)
{
if(x==a*a*a+b*b*b+c*c*c)

x=a*a*a+b*b*b+c*c*c;
cout<<x<<endl;
}
return 0;
}
我错在哪里了,请在我的基础上帮我改一下。

#include<iostream> 
using namespace std; 
int main() 

    int x,a,b,c; 
      
    for(x=100;x<=999;x++) 
    { 
                      a=x%10;//移到循环之内  
                      b=x/10%10; 
                      c=x/100%10; 
                      if(x==a*a*a+b*b*b+c*c*c)  
                      { 
                                               cout<<x<<'\n'; 
                      } 
    } 
}

注释部分存在问题,测试结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-13
你的错误之处就在于,x还没有赋值,你就让 a = x/100,这样肯定就错了!你只需要把赋值语句放在循环里面。
相似回答