c语言 输出所有水仙花数 错哪了错哪了????

2025-06-22 05:26:23
推荐回答(5个)
回答1:

#include
void main ()
{
int a,b,c,d,i;
int flag;
flag =0;
for (i=100;i<=999;i++)
{ a=i%10;
b=i/10%10;
c=i/100;
d=(a*a*a+b*b*b+c*c*c);
if (i==d)
{

printf("%d\n",i);
}

}
}
无需多加一步 更无需加continue; 因为循环会自动执行下一步的
如果你要是求第一个水仙花数的话 那么应该是跳出循环 用的是break;

回答2:

不需要flag变量控制,满足条件即可输出,程序修改为:

#include
void main ()
{
int a,b,c,d,i;
for (i=100;i<=999;i++)
{ a=i%10;
b=i/10%10;
c=i/100;
d=(a*a*a+b*b*b+c*c*c);
if (i==d) printf("%d\t",i);

}
}

回答3:

不需要flag变量控制,满足条件即可输出,程序修改为:
#include

void
main
()
{
int
a,b,c,d,i;
for
(i=100;i<=999;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
d=(a*a*a+b*b*b+c*c*c);
if
(i==d)
printf("%d\t",i);
}
}

回答4:

请将flag=1;和continue;换成printf ("%d\n",i);
再把最后的 if (flag)
printf("%d\n",i);
删掉,应该就可以了

回答5:

void main ()
{
int a,b,c,d,i;
int flag;
flag =0;
for (i=100;i<=999;i++)
{ a=i%10;
b=i/10%10;
c=i/100;
d=(a*a*a+b*b*b+c*c*c);
if (i==d)
printf("%d\n",i);

}

}