Online Compiler C

#include <stdio.h> int grow_up(int n) { if (n <= 9) { return 1; } while (n > 9) { int max = n % 10; n /= 10; while (n > 0) { int a = n % 10; if (a >= max){ return 0; } max = a; n /= 10; } return 1; } int main() { printf("%d", grow_up(258)); return 0; }
Этот код проверяет, являются ли цифры числа строго возрастающими слева направо. Функция `grow_up` должна возвращать 1, если цифры возрастают (например, 258), и 0 в противном случае. В коде есть синтаксическая ошибка и логическая проблема.

- Внутренний цикл `while (n > 0)` не имеет закрывающей фигурной скобки. Проверьте расстановку скобок — одна из них пропущена, из-за чего код не скомпилируется.
- Логика проверки перепутана: вы сравниваете текущую цифру с предыдущей, но при делении на 10 цифры извлекаются с конца числа. Подумайте, как правильно сравнивать цифры, когда вы идёте от младших разрядов к старшим.