#include <stdio.h>
// 定义求最大公约数(GCD)的函数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b); // 使用递归方式计算最大公约数
// 定义求最小公倍数(LCM)的函数
int lcm(int a, int b) {
// LCM可以通过两数相除再相乘来求得,因为LCM(a, b) = (a * b) / GCD(a, b)
return (a * b) / gcd(a, b); // 计算最小公倍数
int main() {
int num1, num2;
printf("请输入第一个整数:"); // 修正了引号的使用,使其更清晰
scanf("%d", &num1); // 读取第一个整数
if (scanf("%d", &num2) != 1) { // 如果第二个整数输入不正确,则进行错误处理
printf("输入错误,请确保输入的是一个整数!\n"); // 输出更友好的错误信息
return 1; // 返回错误代码,结束程序
}
printf("请输入第二个整数:"); // 再次提示用户输入第二个整数
scanf("%d", &num2); // 读取第二个整数
// 输出两数的最大公约数和最小公倍数
printf("数字 %d 和 %d 的最大公约数是: %d\n", num1, num2, gcd(num1, num2)); // 输出最大公约数
printf("数字 %d 和 %d 的最小公倍数是: %d\n", num1, num2, lcm(num1, num2)); // 输出最小公倍数
return 0; // 程序正常结束,返回0
这个程序首先包含了必要的头文件<stdio.h>
,然后定义了两个函数gcd
和lcm
分别用于计算最大公约数和最小公倍数,在main
函数中,程序提示用户输入两个整数,并使用scanf
函数读取这些值,如果第二个整数的输入不正确(即不是整数),程序会输出一个错误消息并返回一个错误代码,程序会输出两个整数的最大公约数和最小公倍数。