用c语言求最大公约数
时间: 2024-03-13 17:39:10 浏览: 78
以下是用C语言求最大公约数的代码和解释:
```c
#include <stdio.h>
int gcd(int a, int b) {
int temp;
if (a < b) { // 交换a和b的值,使a始终大于等于b
temp = a;
a = b;
b = temp;
}
while (b != 0) { // 辗转相除法求最大公约数
temp = a % b;
a = b;
b = temp;
}
return a;
}
int main() {
int a, b;
printf("请输入两个正整数:");
scanf("%d %d", &a, &b);
printf("%d和%d的最大公约数为:%d\n", a, b, gcd(a, b));
return 0;
}
```
代码解释:
1. 首先定义了一个名为gcd的函数,该函数接受两个整数参数a和b,返回它们的最大公约数。
2. 在gcd函数中,首先通过比较a和b的大小,将a始终设置为大于等于b的值。
3. 然后使用while循环来执行辗转相除法,直到b等于0为止。
4. 在while循环中,首先计算a除以b的余数,并将其存储在temp变量中。
5. 然后将b的值赋给a,将temp的值赋给b,以便进行下一次循环。
6. 最后,当b等于0时,返回a的值,即为a和b的最大公约数。
7. 在main函数中,首先提示用户输入两个正整数,然后使用scanf函数读取这两个值。
8. 然后调用gcd函数计算它们的最大公约数,并将结果输出到屏幕上。
阅读全文