| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 664 人关注过本帖
标题:高手们看看这个程序哪里错了,是求N个数最大公约数最小公倍数的问题
只看楼主 加入收藏
_少爺鈊鈦亂
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-1-23
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
高手们看看这个程序哪里错了,是求N个数最大公约数最小公倍数的问题
#include <stdlib.h>
#define N 2
main()
{
      int g[N],a,b,c,d;
      int e,f,x;
      printf("请输入数" );
      scanf("%d",&g[0]);
      a=g[0];b=g[0];
      for(c=1;c<N;c++)
      {
      scanf("%d",&g[c]);
      a=g[c-1]>g[c]?g[c-1]:g[c];
      b=g[c-1]<g[c]?g[c-1]:g[c];
      }
      a--;b++;
      while (1)
      {
            a++;
            for(d=0;d<N;c++)
            {
            if(a%g[d]==0)
            e++;
            }
            if(e==N)
           
            break;
            else
            continue;
            }
           printf("共倍数为:%d\n",a);   
           while(1)
           {
                   b--;
                   for(f=0;f<N;f++)
                   {
           if(g[f]%b==0)
           x++;
           }
           if(x==N)
           break;
           else
           continue;
           }
           printf("公约数为%d\n",b);
           system("pause");
           }
搜索更多相关主题的帖子: 最小公倍数 最大公约数 
2010-01-23 22:37
Alen0128
Rank: 4
等 级:业余侠客
帖 子:171
专家分:222
注 册:2009-12-26
收藏
得分:3 
你的算法不还理解,但感觉你一开始的数据输入是不是不对,应该写个循环吧。。。

-不想让你发现我 凌乱的脚步 ,我努力 跟上你的速度
2010-01-26 09:20
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:3 
#include <stdlib.h>
#define N 2
main()
{
      int g[N],a,b,c,d;
      int e,f,x;
      printf("请输入数" );
      scanf("%d",&g[0]);
      a=g[0];b=g[0];
      for(c=1;c<N;c++)
      {
      scanf("%d",&g[c]);
      a=a>g[c]?a:g[c];        //--错1:你求的只是最后两个数据的最大值
      b=b<g[c]?b:g[c];        //--错2:同上类似
      }
      a--;b++;
      while (1)
      {
            a++;e=0;         //--错3 :e没初始化
            for(d=0;d<N;d++)  //--错4: d写成了c,造成死循环
            {
            if(a%g[d]==0)e++;
            }
            if(e==N) break;
      }
    printf("公倍数为:%d\n",a);
   
   while(1)
   {
           b--;x=0;                //--错5:x没初始化
           for(f=0;f<N;f++)
           {
               if(g[f]%b==0)
               x++;
            }
           if(x==N)
           break;
           else
           continue;
   }
   printf("公约数为%d\n",b);
   system("pause");
}
2010-01-26 10:50
骓鲟
Rank: 2
等 级:论坛游民
帖 子:31
专家分:19
注 册:2009-6-17
收藏
得分:3 
回复 3楼 kwxx
a--;b++;是在哪个循环内的,菜鸟不懂 帮忙解释
2010-01-26 11:42
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
a--;b++;不在循环内。它只是为了调整下面循环中a,b的初始值。
2010-01-26 11:47
快速回复:高手们看看这个程序哪里错了,是求N个数最大公约数最小公倍数的问题
数据加载中...
 
   



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

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