С помощью рекурсии вывести максимальное число последовательности и нечётные числа - 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 без остатка (т.е. является нечётным), то оно выводится на экран. Поскольку в коде нет условия остановки для рекурсии, программа будет выполняться бесконечно, пока не будет введено ноль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д