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

#include <stdio.h> void print_numbers(int a, int b) { if (a > b) { return; } printf("%d ", a); print_numbers(a + 1, b); } void print(int a, int b) { if (a < b) { return; } printf("%d ", a); print(a - 1, b); } int main(void) { int a, b; scanf("%d %d", &a, &b); if (a >= b) { print_numbers(a, b); } else { print(a, b); } printf("\n"); return 0; }
1) Этот код считывает два целых числа `a` и `b`. Если `a >= b`, он рекурсивно выводит числа от `a` до `b` в порядке возрастания. Если `a < b`, он рекурсивно выводит числа от `a` до `b` в порядке убывания.

2) Обрати внимание на условие в функции `print_numbers` — оно проверяет `a > b` для остановки рекурсии. В функции `print` условие — `a < b`. Убедись, что понимаешь, почему эти условия разные и как они влияют на направление вывода чисел.