函数值为负数的结果输出正确但是,函数值为正数的输出结果不对,我用手算了一遍第一个测试集的6和15,结果明明就是测试集的答案3和30,但是用程序输出的就是不对,而且为什么有的测试集中还有负数出现,是我哪里的类型定义错了吗?希望具体讲一讲,刚开始学,程序老是出错很多。
#include<stdio.h>
//编写最大公约数GCD函数
/*********Begin*********/
int max(int m,int n){
int t,a,b;
if(m<n)
{
t=m;
m=n;
n=t;
}
a=m*n;
b=m%n;
while(b!=0)
{
m=n;
n=b;
b=m%n;
}
return(n);
}
/*********End**********/
//编写最小公倍数LCM函数
/*********Begin*********/
int min(int m,int n){
int t,a,b;
if(m<n)
{
t=m;
m=n;
n=t;
}
a=m*n;
b=m%n;
while(b!=0)
{
m=n;
n=b;
b=m%n;
}
return(a/n);
}
/*********End**********/
int main(void)
{
/*********Begin*********/
int a,b,c,d;
scanf("%d,%d",&a,&b);
if(a<0 || b<0)
{
printf("Input Error");
}
else {
c=max(a,b);
d=min(a,b);
printf("%d %d",c,d);
}
/*********End**********/
return 0;
}