Написать рекурсивную функцию, выводящую ряд чисел от n до 1 и обратно - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Помогите пожалуйста решить задачу. Требуется написать рекурсивную функцию принимающую целое число n и выводящую ряд чисел от n до 1 и обратно.Пример для n=5 , 5 4 3 2 1 2 3 4 5 У меня выходит нечто совсем неудобоваримое.....
Листинг программы
  1. int descending_and_ascending_series(int n);
  2. void main ()
  3. {
  4. int n,num,subtrahend=0;
  5. printf("Please enter the integer number: ");
  6. scanf("%d", &n);
  7. num = n;
  8. while (num>1){
  9. subtrahend++;
  10.  
  11. printf("%d\n", descending_and_ascending_series(n));
  12. }
  13. }
  14. int descending_and_ascending_series(int n)
  15. {
  16. int num = n;
  17. int subtrahend = 0;
  18.  
  19. num -=subtrahend;
  20. if (num <= 1)
  21. return 1;
  22.  
  23. else
  24. return descending_and_ascending_series((n -subtrahend));
  25.  
  26. }

Решение задачи: «Написать рекурсивную функцию, выводящую ряд чисел от n до 1 и обратно»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void down_and_up(unsigned n) {
  4.     printf("%d ", n);
  5.     if ( n > 1 ) {
  6.         down_and_up(n - 1);
  7.         printf("%d ", n);
  8.     }
  9. }
  10.  
  11. int main(void) {
  12.     unsigned n;
  13.    
  14.     while ( printf("\nNumber: ") && scanf("%u", &n) == 1 && n )
  15.         down_and_up(n);
  16.    
  17.     return 0;
  18. }

Объяснение кода листинга программы

В данном коде реализована рекурсивная функция 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы