Online Compiler C

#include <stdio.h> int main() { int a, b, temp; scanf("%d %d", &a, &b); while (b != 0) { temp = a % b; a = b; b = temp; } printf("%d", a); return 0; }
这段代码实现了欧几里得算法(辗转相除法)来计算两个整数的最大公约数。程序从输入读取两个整数,然后通过循环不断用较小数除较大数取余,直到余数为零,此时a中保存的就是最大公约数。

- 代码逻辑是正确的,但缺少对输入格式的提示。如果用户输入非数字字符,scanf会失败,程序可能产生意外结果。可以考虑检查scanf的返回值。
- 变量temp在循环中用于临时存储余数,这是正确的做法。但注意如果输入包含负数,取模运算的结果可能为负,导致循环行为异常。可以思考如何处理负数输入。