以下是用 C 语言编写的求两个数 `m` 和 `n` 最大公约数的程序: ```c #include <stdio.h> // 欧几里得算法求最大公约数 int gcd(int m, int n) { while (n!= 0) { // 只要 n 不为 0 int temp = n; // 保存 n 的值 n = m % n; // 计算 m 除以 n 的余数,并赋给 n m = temp; // 将之前保存的 n 的值赋给 m } return m; // 最后 m 的值就是最大公约数 } int main() { int m, n; printf("请输入第一个数:"); scanf("%d", &m); printf("请输入第二个数:"); scanf("%d", &n); int result = gcd(m, n); printf("%d 和 %d 的最大公约数是:%d\n", m, n, result); return 0; } ``` 额外需要注意的逻辑点: 1. 输入的数要确保是整数,否则可能会导致计算错误。 2. 考虑到数值范围,可能需要处理大数情况,防止溢出。 3. 对于边界情况,如 0 和负数,程序的处理需要明确。 [2024-12-12 22:04:07 | AI写代码神器 | 307点数解答]