在线编译器 C

#include <stdio.h> int main() { int x, y, num; scanf("%d %d", &x, &y); while (y != 0) { num = x % y; x = y; y = num; } printf("%d", x); return 0; }
这段代码实现了求两个整数的最大公约数(GCD)的欧几里得算法。它通过反复用较小数除较大数取余,直到余数为0,此时x中保存的就是最大公约数。

- 代码没有处理输入无效的情况,比如用户输入非数字字符或负数。虽然负数取余在C语言中可能得到负余数,但算法仍能正确工作,不过通常建议先取绝对值。
- 变量num在循环中用于暂存余数,但它的作用域可以更小,比如直接在循环内部声明,这样代码更清晰。