c语言输入多组数据第一行最大公约数
时间: 2024-10-25 22:03:33 浏览: 28
在C语言中,计算多组数据的最大公约数(GCD,Greatest Common Divisor)通常采用欧几里得算法(Euclidean Algorithm)。这个算法基于这样一个性质:两个整数a和b(假设a > b),它们的最大公约数等于较小数b和两数相除余数a % b的最大公约数。
以下是实现该算法的一般步骤:
1. 定义一个函数gcd(),接受两个整数作为参数。
2. 在循环中,不断更新较大的数为两数之差(a = a % b),直到b变为0。
3. 当b为0时,a就是最大公约数,因为a % b == 0意味着a能整除b。
下面是示例代码,用于处理用户输入多组数据并计算每组数据的最大公约数:
```c
#include <stdio.h>
// 定义计算最大公约数的函数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
int main() {
// 循环读取输入
while (1) {
int num1, num2;
printf("请输入两个整数(输入'q'退出):");
if (scanf("%d %d", &num1, &num2) != 2 || num1 == 'q' || num2 == 'q') break; // 检查是否输入'q'
int result = gcd(num1, num2);
printf("这两个数的最大公约数是:%d\n", result);
}
return 0;
}
```
阅读全文