| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1301 人关注过本帖
标题:请问这个水仙花数的程序错在哪里?就用这种方法~~~~
只看楼主 加入收藏
小耳元
Rank: 1
来 自:云南
等 级:新手上路
帖 子:72
专家分:6
注 册:2010-4-17
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:16 
请问这个水仙花数的程序错在哪里?就用这种方法~~~~
#include "stdio.h"
main()
 {
   int a,b,c,x,y,m;
     y=0;
   for(a=100;a<=999;a++)
    {
      m=a;
      do
      {
        b=m%10;
        m=m/10;
        x=b*b*b;
        y=y+x;
        }
        while(m>0);
        if(a==y)
        printf("%d\n",a);
        }
        }
搜索更多相关主题的帖子: 水仙花 
2010-06-09 15:37
ljwei
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:46
专家分:192
注 册:2009-9-18
收藏
得分:1 
程序代码:
#include "stdio.h"
void main()
{
   int a,b,c,y,m;
    
   for(m=100;m<=999;m++)
    {
        a=m%10;    /* a代表个位,b代表十位,c代表百位*/
        b=(m%100-a)/10;
        c=(m-b*10-a)/100;
        y=a*a*a+b*b*b+c*c*c;
        if(m==y)printf("%d\n",y);   /*符合条件则输出*/
    }
  }
这样才对

[ 本帖最后由 ljwei 于 2010-6-9 16:52 编辑 ]
2010-06-09 16:13
小鱼漂流
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-09 16:20
l302889153
Rank: 2
等 级:论坛游民
帖 子:66
专家分:89
注 册:2010-5-26
收藏
得分:1 
#include "stdio.h"
main()
{
   int a,b,c,x,y,m;
     y=0;
   for(a=100;a<=999;a++)
    {
      m=a;
      do
      {
        b=m%10;
        m/=10;
        x=b*b*b;
        y+=x;
        }
        while(m>0)
        if(a==y)
        printf("%d\n",a);
        }
        }
2010-06-09 16:37
ljwei
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:46
专家分:192
注 册:2009-9-18
收藏
得分:0 
回复 3楼 小鱼漂流
这个是没有问题的吧,因为每一次循环都是重新赋值的:y=a*a*a+b*b*b+c*c*c;
2010-06-09 16:54
kingmacrobo
Rank: 2
来 自:HUST
等 级:论坛游民
帖 子:39
专家分:49
注 册:2010-6-1
收藏
得分:1 
把y=0放在for循环开始就行了:
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
#include "stdio.h"
main()
{
   int a,b,c,x,y,m;
   for(a=100;a<=999;a++)
    {
      y=0;
      m=a;
      do
      {
        b=m%10;
        m=m/10;
        x=b*b*b;
        y=y+x;
      }
      while(m>0);
      if(a==y)
      printf("%d\n",a);
   }
}
2010-06-09 17:20
starjun14
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:266
专家分:136
注 册:2009-4-26
收藏
得分:1 
#include <stdio.h>
  int main()
  {
  int a,b,c;
  for(a=1;a<=9;a++)
  for(b=0;b<=9;b++)
  for(c=0;c<=9;c++)
  if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)
  printf("%d%d%d\n",a,b,c);
  
  }
2010-06-09 17:23
lii_yong
Rank: 2
等 级:论坛游民
帖 子:34
专家分:21
注 册:2010-5-14
收藏
得分:1 
你是不是少了个花括号
2010-06-09 17:34
lii_yong
Rank: 2
等 级:论坛游民
帖 子:34
专家分:21
注 册:2010-5-14
收藏
得分:0 
#include "stdio.h"
main()
{
   int a,b,c,x,y,m;
   for(a=100;a<=999;a++)
    {
      y=0;
      m=a;
      do {
          b=m%10;
          m=m/10;
          x=b*b*b;
          y=y+x;
          }while(m>0);
      if(a==y)
      printf("%d\n",a);
   }
}

是不是没问题哦
2010-06-09 17:38
炫舞小子
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-09 18:33
快速回复:请问这个水仙花数的程序错在哪里?就用这种方法~~~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017891 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved