厨房贮物歺车:大家帮忙看看我的c程序

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 09:59:26
一个求最大公约数和最小公倍数的程序。我用的是dec-c++

#include<stdio.h>
int main()
{int min(int,int);
int m,n,i,j;
printf("请输入数字");
scanf("%d %d",&m,&n);
for(i=0;i<min(m,n);i++)
if((m%i==0)&&(n%i==0)) j=i;
printf("它们的最大公约数是%d",j);

for(i=1;;i++)
if(((i*m)%n)==0) break;
printf("它们的最小公倍数是%d",i*m);
getchar();
return 0;
}

int min(int a,int b){
return (a>b?b:a);
}

编译正常,运行时出现 未命名1.exe 遇到错误需要关闭,我们对此引起的不便表示抱歉,然后问我要不要发送错误报告!!

我自己的程序到了这种地步!!我服了!!

for(i=0;i<min(m,n);i++)
if((m%i==0)&&(n%i==0)) j=i;
-----------------------------------------
改成
for(i=1;i<=min(m,n);i++)
if((m%i==0)&&(n%i==0)) j=i;
------------------------------------------
解释:
最大公约数应该从1开始,m%i如果i=0则除0异常。
另外最大公约数应该包括两个数中得最小数,故而i<min(m,n);要改成i<=min(m,n);
------------------------
ok?