Online Compiler C

#include <stdio.h> int main() { int n, m; scanf("%d%d", &n, &m); if(n >= m){ int min = m, max = n; } else { int min = n, max = m; } for(int i = min; i <= max; i++){ printf("%d ", i*i*i); } }
这段代码试图读取两个整数n和m,然后输出它们之间(包括两端)所有整数的立方值。但代码存在作用域问题,导致无法正确编译或运行。

- 在if-else语句内部定义的变量min和max,其作用域仅限于各自的花括号内,循环中的min和max无法访问这些变量,因此循环会报错说min和max未定义。
- 你需要将min和max的声明放在if-else语句之前,并在条件判断中只进行赋值,这样它们才能在后面的循环中被使用。