标题:求教 哪里出错了?编译没问题,运行不了。 求公倍公约的 如果有更好的方 ...
只看楼主
thelastone
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2013-11-23
结帖率:100%
已结贴  问题点数:20 回复次数:7 
求教 哪里出错了?编译没问题,运行不了。 求公倍公约的 如果有更好的方法麻烦说下
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int gongyue(int,int);
    int gongbei(int,int,int);
    int a,b,h,i;
    printf("input two number:\n");
    scanf("%d,%d",&a,&b);
    h=gongyue(a,b);
    printf("h=%d\n",h);
    i=gongbei(a,b,h);
    printf("%d\n",i);
    system("PAUSE");
    return 0;
}
int gongyue(int a,int b)
{
    int c,d;
    if(b>a)
    {
           c=a;a=b;b=c;
    }
    while((d=a%b)!=0)
    {
            a=b;
            b=d;
    }
    return (d);
}
int gongbei(int a,int b,int h)
{
    return (a*b/h);
}
搜索更多相关主题的帖子: include system number return 
2014-01-03 15:12
mic123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:123
注 册:2013-12-23
得分:5 
哎呀我也不会求,不过跑了下你的程序,又百度了下
发现你用的 辗转相除法,于是改了下代码。
应该可以运行了。

程序代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int gongyue(int,int);
    int gongbei(int,int,int);
    int a,b,h,i;
    printf("input two number:\n");
    scanf("%d%d",&a,&b);   //-----------zhe-------------//
    h=gongyue(a,b);
    printf("h=%d\n",h);
    i=gongbei(a,b,h);
    printf("%d\n",i);
    //system("PAUSE");
    return 0;
}
int gongyue(int a,int b)
{
    int c,d;
    if(b>a)
    {
           c=a;a=b;b=c;
    }
    while((d=a%b)!=0)
    {
            a=b;
            b=d;
    }
    d=b;            //-----------zhe-------------//
    return (d);
}
int gongbei(int a,int b,int h)
{
    return (a*b/h);
}




[ 本帖最后由 mic123 于 2014-1-3 17:01 编辑 ]
2014-01-03 16:59
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
得分:5 
求最大公约数和最小公倍数一般都是用辗转相除法求之,下面的代码是很多教材都会用到的

程序代码:
#include<stdio.h>
void main()
{
    int p,r,n,m,temp;
    printf("请输入两个正整数:");
    scanf("%d,%d",&n,&m);//输入时注意两个数要用逗号隔开哦
    if(n<m){
        temp=n;
        n=m;
        m=temp;    //把大数放在n中,小数放在m中
    }
    p=m*n;         //将m与n的乘积放在p中,以便求最小公倍数时用
    while(m!=0){   //求最大公约数
        r=n%m;
        n=m;
        m=r;
    }
    printf("最大公约数为:%d\n",n);
    printf("最小公倍数为:%d\n",p/n);
}

三十年河东,三十年河西,莫欺少年穷!
2014-01-04 01:23
thelastone
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2013-11-23
得分:0 
回复 3楼 韶志
请问    我的那个错在哪里了?
2014-01-05 01:21
thelastone
Rank: 2
等 级:论坛游民
帖 子:14
专家分:14
注 册:2013-11-23
得分:0 
回复 2楼 mic123
请问我的是错在哪里了
2014-01-05 01:23
dtxwz
Rank: 2
等 级:论坛游民
帖 子:79
专家分:45
注 册:2011-9-18
得分:5 
第一个求最大公约数应该return b;
2014-01-05 13:21
mic123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:123
注 册:2013-12-23
得分:0 
回复 5楼 thelastone
。。 看看我回复的代码, 就是在你的基础上改的。
2014-01-06 09:23
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
得分:5 
求公倍的函数是错误的
2014-01-06 12:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-426073-1-1.html




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

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