关于循环语句,菜鸟求助。。。

「已注销」 2012-05-07 01:56:18
输出所有‘水仙花数’,即:一个三位数,其各位数字立方和等于该数本身,如153是‘水仙花数’,因为 153=1*1*1+5*5*5+3*3*3。
编写如下程序:

#include <stdio.h>
void main()
{
int a,b,c,d;
a=1;
b=0;
c=0;
for(d=a*100+b*10+c;d<=999;d++)
{
if(d!=a*a*a+b*b*b+c*c*c)
continue;
printf("%d ",d);
}
printf("\n");
}
大神帮忙看看错哪了,感激不尽。。。。
...全文
276 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
wcyun_11 2012-05-12
  • 打赏
  • 举报
回复
对啊。。。。A,B,C都没循环。。。
zhoufenzh 2012-05-12
  • 打赏
  • 举报
回复
a b c 的值始终没有变。可以用三个嵌套的循环。
wizard_tiger 2012-05-12
  • 打赏
  • 举报
回复
LS都说了,abc的值都没有变化。
main_jj 2012-05-10
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{
int a,b,c,d;

for(d=100; d<=999; ++d)
{
a=d/100;
b=d%100/10;
c=d%10;
if(d!=a*a*a+b*b*b+c*c*c)
continue;
printf("%d ",d);
}
printf("\n");
return 0;
}



LZ错误原因楼上已有,另外问6楼,三重循环用起来这么随便啊
这种算法建议LZ不要学习
流星陨落 2012-05-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

a,b,c都不变你怎么能这样呢
for(d=100;d<999;d++)
{
a=d/100;
b=(d-a*100)/10;
c=d%10;
if(d==a*a*a+b*b*b+c*c*c)
prinf("%d",d);
}
[/Quote]
++
张二嘎 2012-05-10
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
int a,b,c,d;
for(d=100;d<=999;d++)
{
a=d/100;
b=d/10-a*10;
c=d%10;
if(d==a*a*a+b*b*b+c*c*c)
printf("%d\n",d);
}
}


up!!
ld919203716 2012-05-10
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main(){
int a,b,c,d;
for(d=100;d<=999;d++){
a=d/100;
b=(d-100*a)/10;
c=d-100*a-10*b;
if(d==a*a*a+b*b*b+c*c*c)
printf("%d\n",d);
}
return 0;
}
Steward2011 2012-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
C/C++ code

#include <stdio.h>
void main()
{
int a,b,c,d;

for(d=100;d<=999;d++)
{
a=d/100;
b=(d-100*a)/10;
c=d-100*a-10*b;
if(a*a*a+b*b*b+c……
[/Quote]

up
zx2010005154 2012-05-09
  • 打赏
  • 举报
回复
a b c 的值没变,在for循环中if(d!=a*a*a+b*b*b+c*c*c)中a=1,b=0,c=0不发生改变!
我帮你改成

#include <stdio.h>
void main()
{
int a,b,c,d;
for(d=100;d<=999;d++)
{
a=d/100;
b=d/10-a*10;
c=d%10;
if(d==a*a*a+b*b*b+c*c*c)
printf("%d\n",d);
}
}
这就行了!
wenke311 2012-05-07
  • 打赏
  • 举报
回复
a,b,c都不变你怎么能这样呢
for(d=100;d<999;d++)
{
a=d/100;
b=(d-a*100)/10;
c=d%10;
if(d==a*a*a+b*b*b+c*c*c)
prinf("%d",d);
}
Spy 2012-05-07
  • 打赏
  • 举报
回复
lz的代码是:a,b,c三个之都是不变的,而d却是在递增
querdaizhi 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

C/C++ code

#include <stdio.h>
int main()
{
int a , b ,c ,d ;

for(d = 100 ; d < 999 ; d++){
a = d / 100 ; //百位
b = d % 100 / 10 ; //十位
c = d % 100 % 10 ; //个位
……
[/Quote]

++LZ,for循环的三个表达式分别是:第一个表达式初始化,第二个表达式是判断条件,如果第二个表达式为真,则执行for循环中的内容。执行完for循环中的内容之后,再执行第三个表达式,然后继续执行第二个表达式,为真就继续执行for循环中的内容,以此循环。
癫癫的恋了 2012-05-07
  • 打赏
  • 举报
回复
嗯,a,b,c三个产量始终没变
xu1018 2012-05-07
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
int i, a,b,c;
for(i=100;i<=999;i++)
{
a=i/100; /*百位 */
b=i/10%10; /*十位 */
c=i%10; /*个位 */
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
return 0;
}
doraemonmqq 2012-05-07
  • 打赏
  • 举报
回复
#include <stdio.h>
void main()
{
int i, a,b,c;
for(i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
getch();
}
Heaven13483 2012-05-07
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int main()
{
int a , b ,c ,d ;

for(d = 100 ; d < 999 ; d++){
a = d / 100 ; //百位
b = d % 100 / 10 ; //十位
c = d % 100 % 10 ; //个位
if( d != a * a *a + b * b * b + c * c *c)
continue ;
cout<<d<<endl;
}

return 0 ;
}

Heaven13483 2012-05-07
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int main()
{
int a , b ,c ,d ;

for(d = 100 ; d < 999 ; d++){
a = d / 100 ; //百位
b = d % 100 / 10 ; //十位
c = d % 100 % 10 ; //个位
if( d != a * a *a + b * b * b + c * c *c)
continue ;
cout<<d<<endl;
}

return 0 ;
}

亘古原自寂寞 2012-05-07
  • 打赏
  • 举报
回复
4楼的好像也不对吧,应该
#include <stdio.h>
int main()
{
int a,b,c;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
printf("%d%d%d\n",a,b,c);
}
}
}
return 0;
}
运行一下,看行不行,我没试呢
SBCDJ 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

嗯,楼上说的对,abc的值都没有变,变的只是d
以下是我写的程序,参考参考
#include <stdio.h>
int main()
{
int a,b,c;
for(a=1;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
printf("%d%d%d\n",……
[/Quote]
统一楼上的观点。
感觉在继续 2012-05-07
  • 打赏
  • 举报
回复
嗯,楼上说的对,abc的值都没有变,变的只是d
以下是我写的程序,参考参考
#include <stdio.h>
int main()
{
int a,b,c;
for(a=1;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
printf("%d%d%d\n",a,b,c);
return 0;
}
加载更多回复(3)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧