c语言编写程序实现求两个数的最小公倍数,输入要有相应的提示语句,要求输入两个数字范围在1-00之间,若不符合要求继续输入,直到符合要求为止,最小公倍数求解由子函数完成
时间: 2024-10-20 08:13:08 浏览: 32
在C语言中,我们可以编写一个小程序来求两个数的最小公倍数(LCM)。首先,我们需要定义一个函数`getValidInput()`用于获取用户输入并验证数字是否在1到100范围内,然后定义一个辅助函数`lcm()`计算两个数的最小公倍数。下面是一个简单的实现:
```c
#include <stdio.h>
#include <math.h>
// 定义计算最小公倍数的函数
int lcm(int a, int b) {
return (a * b) / __gcd(a, b);
}
// 获取有效输入的函数
int getValidInput() {
int num;
do {
printf("请输入两个1到100之间的整数,用空格分隔:");
scanf("%d %d", &num);
if (num < 1 || num > 100) {
printf("输入错误,数值超出范围,请重新输入。\n");
}
} while (num < 1 || num > 100);
return num;
}
int main() {
int num1 = getValidInput();
int num2 = getValidInput();
// 计算并打印结果
int result = lcm(num1, num2);
printf("两数 %d 和 %d 的最小公倍数是:%d\n", num1, num2, result);
return 0;
}
```
在这个程序中,`getValidInput()`会持续询问用户输入,直到他们提供满足条件的数字。`lcm()`函数使用了欧几里得算法(`__gcd()`)来计算最大公约数(GCD),然后通过公式`lcm(a, b) = abs(a*b) / gcd(a, b)`得到最小公倍数。
阅读全文