设计一个c程序,从键盘输出2个数,求其最大公约数,并输出最大公约数
时间: 2024-03-24 13:41:53 浏览: 11
好的,以下是一个简单的 C 语言程序,可以实现您的需求:
```c
#include <stdio.h>
int main() {
int num1, num2, gcd, i;
printf("请输入两个整数:\n");
scanf("%d %d", &num1, &num2);
for(i=1; i <= num1 && i <= num2; i++) {
if(num1%i==0 && num2%i==0) {
gcd = i;
}
}
printf("最大公约数为:%d", gcd);
return 0;
}
```
程序的思路是,首先通过 `scanf()` 函数从键盘输入两个整数 `num1` 和 `num2`,然后使用 `for` 循环从 1 开始逐个判断 `num1` 和 `num2` 是否能被当前循环变量 `i` 整除,如果能整除,就将 `i` 赋值给变量 `gcd`。最后输出变量 `gcd` 即可。
需要注意的是,这个程序只能求出两个数的最大公约数,如果您需要求多个数的最大公约数,可以将循环的条件修改为 `i <= min(num1, num2)`,并在循环体内使用 `continue` 语句来跳过其他不满足条件的数。
相关问题
C语言从键盘输入两个正整数,求其最大公约数并输出结果。
可以使用辗转相减法来求解两个正整数的最大公约数。
以下是使用 C 语言编写的代码:
```c
#include <stdio.h>
int main() {
int num1, num2, gcd;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
// 辗转相减法求最大公约数
while (num1 != num2) {
if (num1 > num2) {
num1 -= num2;
} else {
num2 -= num1;
}
}
gcd = num1; // 最大公约数即为较小的那个数
printf("最大公约数为:%d", gcd);
return 0;
}
```
在这个程序中,我们首先从键盘输入两个正整数 `num1` 和 `num2`,然后使用辗转相减法求出它们的最大公约数,最后输出结果。
用do…while语句写一个c语言程序,使得键盘输入两个正整数m,你,计算并输出其最大公约数
请看以下程序:
```
#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为止,此时最大公约数就是较小的数。