求两个数的最大公约数的菜鸟算法,纠错
提示: 作者被禁止或删除 内容自动屏蔽
/****************************************************************************** 把你的程序作了一些修改,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*/ }