C++程序,没有语法错误,但结果不对,应该怎样改?谢谢

2025-03-25 05:37:18
推荐回答(5个)
回答1:

第一个 n++不要放在for括号里面
只有是水仙花数的时候 才需要n++
所以 放在if(a*a*a... == x)这个判断里面
第二个 换行是'\n' 不是'/n' 打错了。 对于C++来说 用endl更好一些。

回答2:

#include

int main(void)
{
unsigned int iNum = 100;
unsigned int iDight1, iDight2, iDight3;
unsigned int n = 1;
for (iNum; iNum <= 999; iNum++)
{
iDight1 = iNum % 10;
iDight2 = (iNum % 100) / 10;
iDight3 = iNum / 100;
if (iDight1 * iDight1 * iDight1 + iDight2 * iDight2 * iDight2 + iDight3 * iDight3 * iDight3 == iNum)
{
if (n % 2)
{
printf("%20u", iNum);
}
else
{
printf("%20u\n", iNum);
}
n++;
}
}
return 0;
}

回答3:

n++位置不对,放在打印以后
格式用C的更好
if(a*a*a+b*b*b+c*c*c==x)
{
if(n%2 == 0)
printf("%20d\n");
else
printf("%20d");
n++;
}

回答4:

你那个n%2==0后,n没有加上去,永远都是1....应该是输出一个数就自加一下.
输完两个数后,换行,n重置为1.然后继续自加.
水仙花数计算过程没错.

还有,下次提问时,最好直接把程序贴到上来.不要发图.
想帮你调试下也方便点.

回答5:

#include 
#include 
using namespace std;

int get_3(int a){
return a*a*a;
}
int main(){
int n=0;
int a,b,c;
int total;
for(int i=100;i<1000;i++){
a=i/100;
b=i%100/10;
c=i%100%10;
total=get_3(a)+get_3(b)+get_3(c);
if(total==i){

cout< n++;
if(n%2==0) cout< }
}
}

楼下正解。我帮你完善了。