Написать рекурсивную функцию, выводящую ряд чисел от n до 1 и обратно - C (СИ)
Формулировка задачи:
Здравствуйте. Помогите пожалуйста решить задачу. Требуется написать рекурсивную функцию принимающую целое число n и выводящую ряд чисел от n до 1 и обратно.Пример для n=5 , 5 4 3 2 1 2 3 4 5 У меня выходит нечто совсем неудобоваримое.....
Листинг программы
- int descending_and_ascending_series(int n);
- void main ()
- {
- int n,num,subtrahend=0;
- printf("Please enter the integer number: ");
- scanf("%d", &n);
- num = n;
- while (num>1){
- subtrahend++;
- printf("%d\n", descending_and_ascending_series(n));
- }
- }
- int descending_and_ascending_series(int n)
- {
- int num = n;
- int subtrahend = 0;
- num -=subtrahend;
- if (num <= 1)
- return 1;
- else
- return descending_and_ascending_series((n -subtrahend));
- }
Решение задачи: «Написать рекурсивную функцию, выводящую ряд чисел от n до 1 и обратно»
textual
Листинг программы
- #include <stdio.h>
- void down_and_up(unsigned n) {
- printf("%d ", n);
- if ( n > 1 ) {
- down_and_up(n - 1);
- printf("%d ", n);
- }
- }
- int main(void) {
- unsigned n;
- while ( printf("\nNumber: ") && scanf("%u", &n) == 1 && n )
- down_and_up(n);
- return 0;
- }
Объяснение кода листинга программы
В данном коде реализована рекурсивная функция down_and_up, которая выводит на экран числа от n до 1 и обратно.
- Включаем заголовочный файл stdio.h, который содержит необходимые для работы функции printf и scanf.
- Создаём функцию down_and_up, принимающую целочисленный аргумент n.
- Внутри функции выводим число n на экран с помощью printf, используя строку
%d
для форматирования вывода. - С помощью условного оператора if проверяем, больше ли n единицы.
- Если условие истинно, то вызываем функцию down_and_up рекурсивно с аргументом n — 1 и выводим число n на экран.
- В основной функции main с помощью цикла while считываем натуральное число n с помощью scanf и выводим его на экран.
- Пока пользователь вводит корректные значения n, вызываем функцию down_and_up и выводим её результат на экран.
- После выхода из цикла while возвращаем 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д