#include<stdio.h>
int main()
{
int a, b, r;
printf("请输入两个数字: ");
scanf_s("%d%d", &a, &b);
while (a % b)//计算a%b
{
r = a % b;
a = b;//将除数作为被除数
b = r;//将余数作为除数
}//若a%b=0 终止上述循环,b为最大公约数
printf("最大公约数是%d", b);
return 0;
}
当输入的两个数发生b>a时,程序仍能正常运行,不需要在while语句前将较大数与较小数分别给a,b 赋值。
以输入的两个数为15与20为例,r=a%b 即r=15
程序继续运行,即 a=20, b=15
所以当b>a时,不影响程序继续运行