参考GPT和自己的思路:
好的,根据您的问题,我可以给您一个通用的代码模板。具体实现如下:
#include <stdio.h>
// 最大公约数函数
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
// 最小公倍数函数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
// 结构体定义
struct Numbers {
int num1;
int num2;
};
int main() {
Numbers nums;
// 从文件读取数据
FILE *fp = fopen("input.txt", "r");
fscanf(fp, "%d%d", &nums.num1, &nums.num2);
fclose(fp);
// 计算最大公约数和最小公倍数
int g = gcd(nums.num1, nums.num2);
int l = lcm(nums.num1, nums.num2);
// 输出结果到文件
fp = fopen("output.txt", "w");
fprintf(fp, "%d %d", g, l);
fclose(fp);
return 0;
}
上述代码中,我们使用结构体 Numbers
来存储需要求最大公约数和最小公倍数的两个数字,使用指针 fp
来打开并读取输入文件 "input.txt"
,然后我们计算最大公约数和最小公倍数,并将结果输出到输出文件 "output.txt"
中。函数 gcd
实现最大公约数算法,函数 lcm
实现最小公倍数算法。
希望这个代码示例可以帮助您解决问题。