#include<stdio.h>
int max(int m,int n);
int min(int m,int n);
void main()
{
int m,n,zuida,zuixiao;
printf(":\n");
scanf("%d%d",&m,&n);
zuida=max(m,n);
zuixiao=min(m,n);
printf("%d%4d",zuida,zuixiao);
}
int max(int m,int n)
{
int r,t;
if(m<n)
{
t=m;
m=n;
n=t;
}
do
{
r=m%n;
m=n;
n=r;
}while (r!=0);
return r;
}
int min(int m,int n)
{
int t;
t=m*n/max(m,n);
return t;
}
一运行,程序就报错,弹出了,求高手给我,指点指点,谢谢了...
int max(int m,int n);
int min(int m,int n);
void main()
{
int m,n,zuida,zuixiao;
printf(":\n");
scanf("%d%d",&m,&n);
zuida=max(m,n);
zuixiao=min(m,n);
printf("%d%4d",zuida,zuixiao);
}
int max(int m,int n)
{
int r,t;
if(m<n)
{
t=m;
m=n;
n=t;
}
do
{
r=m%n;
m=n;
n=r;
}while (r!=0);
return r;
}
int min(int m,int n)
{
int t;
t=m*n/max(m,n);
return t;
}
一运行,程序就报错,弹出了,求高手给我,指点指点,谢谢了...
do{
}while (r!=0);
return r;
这个循环的退出条件是r=0,因此你这个max函数永远返回0,
这导致min函数中,t=m*n/max(m,n);中的被除数是0,必死无疑啊。