| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 576 人关注过本帖
标题:自己写的关于求最大公约数的程序,我不知道错在哪了,求指点
只看楼主 加入收藏
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
结帖率:93.75%
收藏
已结贴  问题点数:10 回复次数:9 
自己写的关于求最大公约数的程序,我不知道错在哪了,求指点
int gcd(int a,int b)
{int x,y,r;
r=x%y;
if(r=0)
return x;
else
{x=y;
y=r;
gcd(x,y);}
}
void main()
{int a,b;
scanf("%d,%d",&a,&b);
if(a>b)
printf("gcd=%d",gcd(a,b));
else
printf("gcd=%d",gcd(b,a));
}
搜索更多相关主题的帖子: return 公约数 
2013-10-08 07:41
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:0 
int x,y,r;
r=x%y;
if(r=0)
return x;
x,y都没有初值,怎么运算?你的形参是a,b

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-10-08 07:44
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
程序代码:
/*
最大公约数 最小公倍数
*/
#include<stdio.h>

int main(void)
{
    int m, n, t, r;
   
    scanf("%d %d", &m, &n);
   
    r=m * n;
   
    t=m % n;
   
    while(t)
    {
        m=n; n=t; t=m%n;
    }
   
    printf("%d,%d ", n, r/n);

    return 0;
}
2013-10-08 08:02
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 2楼 pauljames
a,b不是实参吗???    x,y才是应该是形参吧   希望大神指点
2013-10-08 12:35
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
程序代码:
int gcd(int a,int b)//这里的a,b是形参
{int x,y,r;
r=x%y;//这里的x,y没有赋给什么有意义的值。
if(r=0)//这里是= 还是应为==
return x;
else
{x=y;
y=r;
gcd(x,y);}
}
void main()
{int a,b;
scanf("%d,%d",&a,&b);
if(a>b)
printf("gcd=%d",gcd(a,b));//这里的a,b是实参
else
printf("gcd=%d",gcd(b,a));//这里的a,b也是实参
} 
2013-10-08 12:43
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 5楼 heroinearth
那我这个程序应该怎样改呢???   
2013-10-08 13:23
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:0 
回复 6楼 初出茅庐MM
程序代码:
#include "stdio.h"
void main()
{
    int a ,b,num1,num2,temp;
    printf("please input two number:\n");
    scanf("%d%d",&num1,&num2);
    if(num1<num2)
    {
        temp=num1;
        num1=num2;
        num2=temp;
    }
    a=num1;
    b=num2;
    while(b!=0) /*辗除法*/
    {
        temp=a%b;
        a=b;
        b=temp;
    }
    printf("gongyueshu:%d\n",a);
    printf("gongbeishu:%d\n",num1*num2/a);
}
你可以参考下,
2013-10-08 13:57
在这里爬起
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:113
注 册:2013-8-9
收藏
得分:10 
程序代码:
#include<stdio.h>
int gcd(int x,int y )
{
    int r;
    r=x%y;
   if(r==0)
    return y;
   else
   {
       x=y;
       y=r;
      gcd(x,y);
   }
}
void main()
{
    int a,b;
    scanf("%d,%d",&a,&b);
    if(a>b)
    printf("gcd=%d",gcd(a,b));
    else
    printf("gcd=%d",gcd(b,a));
} 
改了后的程序,运行正确。
2013-10-08 14:50
初出茅庐MM
Rank: 2
等 级:论坛游民
帖 子:62
专家分:11
注 册:2013-9-28
收藏
得分:0 
回复 8楼 在这里爬起
非常感谢你!!!     我的错误是在放形参的地方放了实参,还有就是if(r==0)。   
2013-10-08 17:57
Wy1121
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-12-24
收藏
得分:0 
为什么复制了8楼的帖子,依旧是不能运行出来
2013-12-24 23:40
快速回复:自己写的关于求最大公约数的程序,我不知道错在哪了,求指点
数据加载中...
 
   



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

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