C语言编程:求两个正整数m、n,输出两个数的最大公约数。注意:输入时,允许用户随意先输入大的或小的整数。
时间: 2023-06-04 15:02:16 浏览: 364
这是一个很不错的编程题目。以下是一个使用辗转相除法求解最大公约数的 C 语言代码示例:
```
#include <stdio.h>
int main() {
int m, n, remainder;
printf("请输入两个正整数m、n:");
scanf("%d%d", &m, &n);
while (n != 0) {
remainder = m % n;
m = n;
n = remainder;
}
printf("最大公约数为:%d\n", m);
return 0;
}
```
代码说明:首先从用户输入中获取两个正整数 m 和 n,然后根据辗转相除法求解它们的最大公约数。具体过程是:每次用 m 除以 n,得到余数 remainder,然后将 n 赋值给 m,remainder 赋值给 n,直到 n 为 0,此时的 m 即为最大公约数。最后将 m 输出即可。
相关问题
用C语言编程:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
输入两个正整数 m 和 n,求其最大公约数和最小公倍数的C语言代码如下:
```
#include <stdio.h>
int main() {
int m, n, max, min, b, c;
printf("请输入两个整数:\n");
scanf("%d%d", &m, &n);
c = m % n;
b = m * n;
while (c != 0) {
m = n;
n = c;
c = m % n;
}
max = n;
min = b / max;
printf("\n最大公约数为:%d\n最小公倍数为:%d\n", max, min);
return 0;
}
```
解释如下:
1. 首先,我们需要输入两个正整数m和n。
2. 然后,我们用辗转相除法求出它们的最大公约数。
3. 最后,我们用两数之积除以最大公约数即可求出它们的最小公倍数。
编程:求两个正整数m,n,输入两个数的最大公约数.注意:输入时,允许用户随意先输入大的或小的整数(C语言)
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int m, n, temp;
printf("请输入两个正整数:\n");
scanf("%d%d", &m, &n);
// 交换 m 和 n 的值,使得 m > n
if (m < n) {
temp = m;
m = n;
n = temp;
}
while (n != 0) {
temp = m % n;
m = n;
n = temp;
}
printf("最大公约数为:%d\n", m);
return 0;
}
```
在这个代码中,我们使用了 `scanf()` 函数来让用户从键盘上输入两个正整数。接着,我们使用了 `if` 语句来判断哪个数较大,如果是第一个数较小,则交换两个数的值,使得第一个数较大。然后,我们使用了一个 `while` 循环来求出两个数的最大公约数,具体做法是:用较大的数除以较小的数,得到余数,然后将较小的数赋值为原来的余数,再用新的较小的数去除以原来的余数,重复这个过程,直到余数为0,此时的较小的数就是两个数的最大公约数。最后,我们使用 `printf()` 函数来输出结果。
希望这个代码对您有所帮助!