Программирование на языке С - 42 стр.

UptoLike

Составители: 

42
Листинг 9. Пример использования рекурсивных функций.
#include <stdio.h>
void up_and_down(int );
int main(void)
{
up_and_down(1);
return 0;
}
void up_and_down(int n)
{
printf(“Уровень вниз %d\n”,n);
if(n < 4) up_and_down(n+1);
printf(“Уровень вверх %d\n”,n);
}
Результатом работы этой программы будет вывод на экран следующих
строк:
Уровень вниз 1
Уровень вниз 2
Уровень вниз 3
Уровень вниз 4
Уровень вверх 4
Уровень вверх 3
Уровень вверх 2
Уровень вверх 1
Полученный результат работы программы объясняется следующим
образом. Вначале функция main() вызывает функцию up_and_down() с
аргументом 1. В результате аргумент n данной функции принимает значение 1
и функция printf() печатает первую
строку. Затем выполняется проверка и если
n < 4, то снова вызывается функция up_and_down() с аргументом на 1 больше
n+1. В результате вновь вызванная функция печатает вторую строку. Данный
процесс продолжается до тех пор, пока значение аргумента не станет равным 4.
В этом случае оператор if не сработает и вызовется функция printf(), которая
печатает пятую строку «Уровень вверх 4». Затем
функция завершает свою
работу и управление передается функции, которая вызывала данную функцию.
Это функция up_and_down() с аргументом n=3, которая также продолжает
свою работу и переходит к оператору printf(), который печатает 6 строку
«Уровень вверх 3». Этот процесс продолжается до тех пор, пока не будет
достигнут исходный уровень, т.е. первый вызов функции up_and_down() и
управление вновь
будет передано функции main(), которая завершит работу
программы.
Задание на лабораторную работу