从求解最大公约数的数学公式出发写的,但不高效
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a,b,t,temp;
printf("请输入两个数\n");
scanf("%d%d",&a,&b);
if(a>b)
{
temp=a;
a=b;
b=temp;
}
t=a;
if(a==0)
{
printf("输入有误\n");
exit(-1);
}
A: while(a%t)
{
t=t-1;
}
if(b%t==0)
printf("t=%d\n",t);
else
{
t=t-1;
goto A;
}
}
<pre name="code" class="cpp">另一种形式,比前一个高效点!
#include<stdio.h>
#include<stdlib.h>
void main()
{
int Number1,Number2;
int temp,a;
printf("请输入两个数\n");
scanf("%d%d",&Number1,&Number2);
if(Number1<Number2)
{
temp=Number1;
Number1=Number2;
Number2=temp;
}
if(Number2==0)
{
printf("输入有误,程序结束\n");
exit(-1);
}
while(a=Number1%Number2)
{
Number1=Number2;
Number2=a;
}
printf("a=%d\n",Number2);
}