首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求解程序哪里出有关问题了

2013-01-23 
求解程序哪里出问题了我是想写一个求最大公约数和最小公倍数的程序。代码如下:#includestdio.hint main()

求解程序哪里出问题了
我是想写一个求最大公约数和最小公倍数的程序。
代码如下:
#include<stdio.h>  
int main()
{int gong(int a,int b);
int bei(int a,int b,int g);
int a,b,g,h;
scanf("%d,%d",&a,&b);
g=gong(a,b);
printf("%d",g);
printf("%d",bei(a,b,g));
return 0;
}
int gong(int a,int b)
{int t,r;
if(a<b)
{t=a;a=b;b=t;}
r=a/b;
while(r!=0)
{a=b;b=r;}
return (b);
}
int bei(int a,int b,int g)
{int h;
h=a*b/g;
return h;
}
可是运行后输进去东西后老是数不出结果啊,哪里写错了吗?
(我知道这题目没必要这样写,但我想要知道的事错在哪里,以防以后出问题就不好办了,希望各位大侠给你帮下忙啊~~~~(>_<)~~~~ )
[解决办法]
1.
scanf("%d,%d",&a,&b); // 格式输入整数,一般不要写个','逗号在里面,防止输入格式错误
改正
scanf("%d%d",&a,&b); // 去掉逗号

2. 公倍数算法错误,而已while进入了死循环


int gong(int a,int b)
{
int t,r;
if(a<b)
{t=a;a=b;b=t;}
//r=a/b;  是下面求余才对
r = a % b;
while(r!=0)
{a=b;b=r;
  r = a % b; // 要加这个,不然循环变量不会变,死循环
}
return (b);
}

热点排行