写C语言程序两个函数,分别求两个整数的最大公约数和最小公倍数,两个整数由键盘输入。最大公约数 最小公倍数 如果输入的数中包含负数,则输出Input Error
时间: 2024-12-12 11:20:31 浏览: 5
调用函数求两个数的最大公约数和最小公倍数(C语言练习例程)
5星 · 资源好评率100%
在C语言中,你可以使用欧几里得算法来计算两个整数的最大公约数(GCD),然后利用这个gcd来求解最小公倍数(LCM)。下面是一个简单的示例程序,它实现了这两个功能:
```c
#include <stdio.h>
// 函数声明
int gcd(int a, int b);
int lcm(int a, int b);
// 欧几里得算法求最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 计算最小公倍数,使用lcm = |a * b| / gcd(a, b)
int lcm(int a, int b) {
int abs_a = (a > 0) ? a : -a;
int abs_b = (b > 0) ? b : -b;
return (abs_a * abs_b) / gcd(abs_a, abs_b);
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
// 检查输入是否合法
if (num1 < 0 || num2 < 0) {
printf("Input Error: 输入的数中包含负数。\n");
return 1; // 返回错误码
}
int result_gcd = gcd(num1, num2);
int result_lcm = lcm(num1, num2);
printf("最大公约数(GCD): %d\n", result_gcd);
printf("最小公倍数(LCM): %d\n", result_lcm);
return 0;
}
```
在这个程序中,用户会被提示输入两个整数,然后`gcd`和`lcm`函数会计算它们的最大公约数和最小公倍数。如果输入包含负数,程序会输出错误信息并终止。
阅读全文