| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 274 人关注过本帖
标题:个位大神帮忙看看啊!到底哪里错了
只看楼主 加入收藏
xiaoqi0110
Rank: 2
等 级:论坛游民
帖 子:55
专家分:52
注 册:2010-8-15
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:2 
个位大神帮忙看看啊!到底哪里错了
#include<stdio.h>
void main()
{
    int gys(int,int);
    int gbs(int,int);
    int num1,num2,Gys,Gbs;          //Gys是最大公约数,Gbs是最小公倍数。
    printf("请你输入两个数:");
    scanf("%d,%d",&num1,&num2);
    Gys=gys(num1,num2);
    Gbs=gbs(num1,num2);
    printf("两个数的最大公约数是%d\n",Gys);
    printf("两个数的最小公倍数是%d\n",Gbs);
}
int gbs(int num1,int num2)//求两个数的最小公倍数。
{   int gys(int,int);
    int Gbs,ys;
    ys=gys(num1,num2);
    Gbs=(num1*num2)/ys;
    return(Gbs);
}

int gys(int num1,int num2)//求两个数的最大公约数。
{
    int t,ys;//ys是余数,t是中间变量。
    if(num1<num2)
    {
        t=num1;
        num1=num2;
        num2=t;
    }
    else
    {
        ys=num1%num2;
        while(ys!=0)
        {
            num1=num2;
            num2=ys;
        }
      return(ys);
    }
}
搜索更多相关主题的帖子: 大神 
2010-12-19 14:48
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
递归错了 无线递归了

Go Go Go
2010-12-19 15:09
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
代码做了如下修改测试正确:
程序代码:
#include<stdio.h>
void main()
{
    int gys(int,int);
    int gbs(int,int);
    int num1,num2,Gys,Gbs;          //Gys是最大公约数,Gbs是最小公倍数。
    printf("请你输入两个数:");
    scanf("%d,%d",&num1,&num2);
    Gys=gys(num1,num2);
    Gbs=gbs(num1,num2);
    if(Gys==1)
        printf("没有最大公约数\n");
    else
        printf("两个数的最大公约数是%d\n",Gys);
    printf("两个数的最小公倍数是%d\n",Gbs);
}
int gbs(int num1,int num2)//求两个数的最小公倍数。
{   int gys(int,int);
int Gbs,ys;
ys=gys(num1,num2);
Gbs=num1*num2/ys;
return(Gbs);
}

int gys(int num1,int num2)//求两个数的最大公约数。
{
    int t,ys=1;//ys是余数,t是中间变量。
    int i=2;
    if(num1<num2)
    {
        t=num1;
        num1=num2;
        num2=t;
    }
    if(num1%num2==0)return num2;
    else
    {
        while(1)
        {
            if((num1%i==0) && (num2%i == 0))
            {
                ys*=i;
                num1=num1/i;
                num2=num2/i;
            }
            if(i==num2)
                return ys;
            i++;
        }
    }
}
图片附件: 游客没有浏览图片的权限,请 登录注册
,结果就是这样。

Go Go Go
2010-12-19 16:34
快速回复:个位大神帮忙看看啊!到底哪里错了
数据加载中...
 
   



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

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