求最大公约数  为什么最后输出的是无限的循环?
											#include<stdio.h>void main( )
{
int a,b,c;
printf("输入需要找最大公约数的两个数\n");
scanf("%d,%d",&a,&b);
c=(a>b)?a:b;
for(c=a;c>0;c--)
{
while(a%c==0&&b%c==0)
printf("%d",c);
}
}
	    2015-12-30 23:48
  
程序代码:
int main (void)
{
    int a,b,c;
    printf("输入需要找最大公约数的两个数\n");
    scanf("%d%d",&a,&b);
    int s=1;
    for(c=1;c<=((a>b)?a:b);c++)
    {
       if(a%c==0 && b%c==0) s=c;
    }
    printf("%d",s);
    return 0;
}
										
					
	
	    2015-12-31 08:36
  
程序代码:
int f(int a,int b)
{
    int t;
    if(a<b) 
    {
        t=a;
        a=b;
        b=t;
    }
    int c,d;
    while(1)
    {
        c=a/b;
        d=a%b;
        if(d==0) return b;
        a=b;
        b=d;
    }
}
										
					
	
	    2015-12-31 10:09
  
程序代码:
int gcd(int x,int y)   
//欧几里得辗转相除法求两数的最大的公约数
{
    if(x<y)    return gcd(y,x);
    if(x%y!=0) return gcd(y,x%y);
    else return y;
}
										
					
	
	    2015-12-31 10:11
  
程序代码:
int foo(int e,int f)
{
    if(e<f) foo(f,e); 
    int b,c,d;
    for(b = e, c = f; d = b % c; b = c, c = d);
    return c;
}
										
					
	
	    2015-12-31 10:17
  
程序代码:#include<stdio.h>
void main( )
{
    int a,b,c;
    printf("输入需要找最大公约数的两个数\n");
    scanf("%d,%d",&a,&b);
    for(c=a<b?a:b;c&&(a%c||b%c);c--);
    printf("%d\n",c);
}										
					
	
	    2015-12-31 10:56
  
	    2015-12-31 11:12
  
	    2015-12-31 11:14
  
[此贴子已经被作者于2015-12-31 11:21编辑过]

	    2015-12-31 11:18
  
	    2016-01-01 12:44