Онлайн компилятор C

#include <stdio.h> void print_a_to_b(int a, int b) { printf("%d", a); if (a > b) { print_a_to_b(int a - 1, int b); } if (a < b) { print_a_to_b(int a + 1, int b); } } int main() { print_a_to_b(10,20); return 0; }
这段代码试图用递归函数打印从a到b的所有整数,但存在语法错误和逻辑问题。

- 递归调用时,参数写法错误。在C语言中,调用函数时不需要在参数前写类型,直接写变量名或表达式即可。
- 递归的终止条件不完整。当a等于b时,函数只打印了a就结束了,但递归调用仍然会继续,导致无限递归或重复打印。