c++水仙花数 请看看程序错哪了?

来源:百度知道 编辑:UC知道 时间:2024/05/22 18:23:54
#include<iostream>
using namespace std;
int main(){
for(int a=0;a<=9;a++)
for(int b=0;b<=9;b++)
for(int c=0;c<=9;c++)
100*a+10*b+c<=999;
if(100*a+10*b+1*c==a*a*a+b*b*b+c*c*c)
continue;
cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;
getchar();
}
请看看错在哪了??
是不是a b c在循环中定义的在下面使用就不行了?
如果是的话改正后为什么编译通过但是不显示数呢??

#include <iostream>
using namespace std;

int main(){
for(int a=1;a<=9;a++){
for(int b=0;b<=9;b++){
for(int c=0;c<=9;c++){
if(100*a+10*b+1*c==a*a*a+b*b*b+c*c*c)
cout<<a<<b<<c<<endl;
//getchar();
}
}
}
}

水仙花数是一个三位数,其各位数字立方和等于该数本身。
首先你的定义就有问题,a,b,c是放在循环中定义,在外面使用自然是出错。
下面是我的思路,互相学习一下
#include "stdafx.h"
#include<iostream>
using namespace std;

int main(array<System::String ^> ^args)
{
int i,j,k,n;
for(n=100;n<=999;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n-i*100-j*10;
if(i*i*i+j*j*j+k*k*k==n) cout<<n<<" ";

}
cout<<"\n";
cin>>i;
}
回答者: x15988649286 - 魔法师 四级
还有:谁-人-知,在C++中可以把int 定义在for循环中

谢谢啦,受教了