求大神帮我看一下这个c语言程序的错误。。

求GCD和LCM,即指求最大公约数和最小公倍数。
写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个整数在主函数中从键盘输入。
每行输入2个正整数。若输入的2个整数中任何一个为0则结束输入。
假设这2个正整数的乘积值不会超过4个字节的表示范围。

样例输入
2,4
12,42
7,21
6,0
样例输出
GCD=2,LCM=4
GCD=6,LCM=84
GCD=7,LCM=21

我的程序

#include <stdio.h>
int fun1(int x, int y)
{
int i,j,s,t;

if (x==y)
return x;
else if(x>=y)
{
s=y;
t=x;

}
else
{
s=x;
t=y;
}
for(i=1; i<=s; i++)
{
if(s%i==0)
if(t%i==0)
j=i;
}
return j;
}
int fun2(int x,int y)

{
int a;
if (x==y)
return x;
a=(x*y)/(fun1(x,y));
}
int main(void)
{
int x,y;
while(scanf("%d,%d",&x,&y))
{
if(x==0||y==0)
break;
printf("GCD=%d,LCM=%d\n",fun1(x,y),fun2(x,y));
}
return 0;
}
我自己试,没什么问题,但交上就是不给过。。。
错误提示。。
=================/sample.out
Right:

GCD=6,LCM=84

-----------------
Your:
194992

=================

检查你的func2函数,只有一个条件返回,如果条件不满足,并没有返回值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-12