Online Compiler C

#include <stdio.h> int main() { int n, m, a, c; scanf("%d%d", &n, &m); if (n > m) { a = m; b = n; } else { a = n; b = m; } while (a != 0) { c = a; a = b % a; b = c; } printf("%d",b); return 0; }
这段代码试图计算两个整数的最大公约数(GCD),但存在变量未声明的问题。

- 代码中使用了变量 `b`,但在 `if` 语句之前没有声明它。C语言要求所有变量在使用前必须先声明,否则编译会报错。

- 在 `if` 语句的两个分支中,你给 `a` 和 `b` 赋值,但 `b` 没有被声明。你需要在程序开头声明 `b`,就像声明 `n, m, a, c` 一样。