求两个数的最大公约数的菜鸟算法,纠错
提示: 作者被禁止或删除 内容自动屏蔽
程序代码:/******************************************************************************
把你的程序作了一些修改,WIN-TC下测试,正常运行。
******************************************************************************/
#include <stdio.h>
void main()
{
int max(int n,int m);
int c,a,b;
printf("input a b:\n");
scanf("%d %d",&a,&b);
c=max(a,b);
if(c) printf("最大公约数为:%d\n",c);/* 如果返回值为真,就打印最大公约数*/
else printf("没有最大公约数\n"); /*返回值为假,表示没有最大公约数*/
getch();
}
int max(int n,int m)
{
int i,z;
if(n>m)
{
z=n,n=m,m=z;
}
for (i=n;i>1;i--) /* 循环应该把1去除*/
{
if((n%i==0)&&(m%i==0)) /*两边都能被i整除*/
{
return (i); /* 返回最大公约数 */
}
}
return i=0; /* 如果没有被整除,就返回0*/
}