4 / 4 / 0
Регистрация: 26.09.2009
Сообщений: 45
|
|
1 | |
Рекурсия: введенные числа распечатать в обратном порядке08.11.2009, 14:31. Показов 1293. Ответов 9
Метки нет Все метки)
(
Написать рекурсивную процедуру, которая считывает вводимые с клавиатуры числа до тех пор, пока не будет обнаружен нуль. Затем введенные числа распечатываются в обратном порядке. Нуль тоже печатать.
0
|
|
08.11.2009, 14:31 | |
Ответы с готовыми решениями:
9
Рекурсия: введенные числа распечатать в обратном порядке Распечатать числа в обратном порядке по 6 чисел в строке
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
||||||
09.11.2009, 03:00 | 2 | |||||
Простенькая задачка...
0
|
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
09.11.2009, 11:22 | 3 |
lexus_ilia, Ты не прав. У тебя выводится только последний символ перед нолем, а по условию, если оно верное, нужно вывести все числа начиная с ноля в обратном порядке. Ты правильно назвал процедуру Стек.
0
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
10.11.2009, 01:30 | 4 |
Puporev, хм, ввожу такую строку "123467890" на экране выводит "0987654321", что неправильно?
Я поэтому процедуру так и назвал, т.к. её работа похожа на работу стека.
0
|
Retired
7726 / 2558 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
|
|
10.11.2009, 01:48 | 5 |
Puporev, да действительно 1234567890 дает 0987654321 тут все верно... я тоже протестил...
0
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
10.11.2009, 01:59 | 6 |
Как бы может кому-то интересно но рекурсия сама работает со стеком в памяти, если вы встречали сообщение из работы рекурсии "Stack overflow...", то это означало что стек который заполняла Ваша рекурсия переполнился и вывелось сообщение об ошибке.
В данной программе что получается: 1)Вызывается процедура ctek 2)Ожидает нажатия клавиши, допустим нажата "6", происходит проверка не равно ли это '0', если не равно, то значение "6" заносится в стек и вызывается процедура ctek 3)всё тоже самое что и в п.2, ввели например "4" 4)всё тоже самое что и в п.2, ввели "0", процедура не вызывает саму себя, а начинает как бы это сказать "подниматься вверх", т.е. печатается "0", происходит возврат в предыдущий вызов, где значение переменной с берётся из стека и удаляется из него, и выводится, и так происходит пока не опустеет стек. 4.1) на экране напечатает "046" 5)ожидание нажатия клавиши и выход из программы.
1
|
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
10.11.2009, 06:27 | 7 |
lexus_ilia, Прошу прощения, но в первый раз у меня почему-то действительно выводило только последний символ, сам удивился, а сегодня выводит все нормально.
0
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
10.11.2009, 14:50 | 8 |
Puporev, Никаких проблем, я всё понимаю, у всех бывает.
0
|
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
|
|
10.11.2009, 14:54 | 9 |
У меня бывает с Crt иногда глюки, нажмешь клавишу, символа нет, нажмешь еще раз-два, появится.
0
|
Inadequate
|
10.11.2009, 17:04
Рекурсия: введенные числа распечатать в обратном порядке
#10
|
0
|
10.11.2009, 17:04 | |
Используя стек вывести числа введенные пользователем в обратном порядке.
Вывести числа в обратном порядке(рекурсия) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |