用do…while语句写一个c语言程序,使得键盘输入两个正整数m,你,计算并输出其最大公约数
时间: 2023-06-04 22:08:30 浏览: 545
请看以下程序:
```
#include<stdio.h>
int main()
{
int m, n, r;
printf("请输入两个正整数m和n:");
scanf("%d%d", &m, &n);
do
{
r = m % n;
m = n;
n = r;
} while (r != 0);
printf("最大公约数为:%d", m);
return 0;
}
```
注意事项:
1. 要使用do…while语句。
2. 读入数据时需要按照如上方式读入。
3. 最大公约数的计算:用较大的数除以较小的数,得到余数,用较小的数除以余数,得到新的余数,以此类推,直到余数为0为止,此时最大公约数就是较小的数。
相关问题
用c语言while语句输入两个正整数,输出它们的最大公约数
A:
```c
#include <stdio.h>
int main() {
int a, b, tmp;
printf("请输入两个正整数:\n");
scanf("%d %d", &a, &b);
while (b != 0) {
tmp = a % b;
a = b;
b = tmp;
}
printf("最大公约数为:%d\n", a);
return 0;
}
```
该程序利用辗转相除法(又称欧几里得算法)计算两个数的最大公约数。原理是:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。重复这个过程,直到b等于0为止,最后的a即为它们的最大公约数。
C语言输入两个正整数m和n,求其最大公约数和最小公倍数用while语句实现
以下是使用while语句实现输入两个正整数m和n,求其最大公约数和最小公倍数的C语言代码:
```c
#include <stdio.h>
int main() {
int m, n, t, d, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d%d", &m, &n);
t = m * n;
while (n != 0) {
d = m % n;
m = n;
n = d;
}
gcd = m;
lcm = t / gcd;
printf("最大公约数为%d\n", gcd);
printf("最小公倍数为%d\n", lcm);
return 0;
}
```
阅读全文