С помощью рекурсии вывести максимальное число последовательности и нечётные числа - C (СИ)
Формулировка задачи:
Дана последовательность чисел, вводится с клавиатуры, ввод завершается введением нуля. С помощью рекурсии вывести максимальное число этой последовательности и нечётные числа. Условие: функция не возвращает значение, а сразу выводит результат на экран. Основная программа состоит только из вызова этой рекурсии
Решение задачи: «С помощью рекурсии вывести максимальное число последовательности и нечётные числа»
textual
Листинг программы
void Nechet(int); int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "rus"); printf("Введите числа:\n"); Nechet(0); return 0; } void Nechet(int j) { int x; j++; scanf("%d", &x); if (x!=0) { Nechet(j); } if ((x % 2) != 0) { printf("x=%d\n", x); } }
Объяснение кода листинга программы
Вывод нечётных чисел последовательности, вероятно, будет осуществляться с помощью рекурсии. Однако, в данном коде, есть проблема с входными данными, которые не учитываются в условии остановки рекурсии. В результате чего программа будет выполняться бесконечно. Поскольку код не полностью представлен, точное объяснение может быть затруднительным. Однако, основываясь на предоставленном коде, можно сделать следующие выводы:
- Функция
Nechet(int j)
принимает целочисленный аргументj
и использует его как индекс для чтения следующего числа из последовательности. - Если введенное число не равно нулю, вызывается рекурсивная функция
Nechet(j)
, что, вероятно, должно продолжать выводить следующие числа последовательности. - Если введенное число делится на 2 без остатка (т.е. является чётным), то ничего не происходит.
- Если введенное число не делится на 2 без остатка (т.е. является нечётным), то оно выводится на экран. Поскольку в коде нет условия остановки для рекурсии, программа будет выполняться бесконечно, пока не будет введено ноль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д