Написать рекурсивную функцию, выводящую ряд чисел от 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 и обратно.

  1. Включаем заголовочный файл stdio.h, который содержит необходимые для работы функции printf и scanf.
  2. Создаём функцию down_and_up, принимающую целочисленный аргумент n.
  3. Внутри функции выводим число n на экран с помощью printf, используя строку %d для форматирования вывода.
  4. С помощью условного оператора if проверяем, больше ли n единицы.
  5. Если условие истинно, то вызываем функцию down_and_up рекурсивно с аргументом n — 1 и выводим число n на экран.
  6. В основной функции main с помощью цикла while считываем натуральное число n с помощью scanf и выводим его на экран.
  7. Пока пользователь вводит корректные значения n, вызываем функцию down_and_up и выводим её результат на экран.
  8. После выхода из цикла while возвращаем 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы