![]() |
|
Модераторы: bsa |
![]()
|
|
| Nerviwki |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
Всем привет!!!! хочу научиться прогать и моя первая программа это вычисление факториала числа двумя способами. Первый использует рекурсивную функцию другой с помощью цикла:
ОБЪЯСНИТЕ ПОЖАЛУЙСТА ГДЕ КАКИЕ ОШИБКИ ДОПУЩЕНЫ. #include <iostream.h> int factorial(int n) { if (n==1) { return 1; } return factorial(n-1)*n; } void main() { cin>>n; factorial(n); } *************************************************** #include <iostream.h> void main() { int n, answer; answer=1; cout<<"Vvedite n n\"; cin>>n; For(int i=1; i<=n; i++) { answer=answer*i; } } |
|||
|
||||
| миг |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 158 Регистрация: 15.9.2008 Репутация: нет Всего: 1 |
В первой программе в функции main забыл создать переменную int n.. и забыл вывести результат на экран cout<<factorial(n);..
во второй программе исправь слеш вот так cout<<"Vvedite n \n"; , for запиши с маленькой буквы и выведи после цикла результат на экран cout<< answer<<endl; Это сообщение отредактировал(а) миг - 16.1.2011, 21:20 --------------------
Oaks may fall when reeds stand the storm. |
|||
|
||||
| Metalex |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
размашисто для первой программы В первой ты используешь n без ее инициализации. Надо:
-------------------- Don't let the system get you down. |
||||
|
|||||
| Nerviwki |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 16.1.2011 Репутация: нет Всего: нет |
Все исправил. биг сэнкью)).Я правильно понял что неважно то что в функции уже объявлена переменная(в данном случае n) ее всеравно надо объявлять в основной программе
|
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Более того, переменная обьявленная в главной функции и переменная, обьявленная в дополнительной функции - 2 разные вещи. При вызове доп. ф-ции из главной ты передаешь параметр н, который копируется в тот параметр н, который находится всередине доп. ф-ции. Читай книги. Так ты ничего не постигнешь. -------------------- Don't let the system get you down. |
|||
|
||||
| Skevalt |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 30.11.2006 Репутация: нет Всего: 3 |
В первой программе нужно ввести ветвь, в которой рассматривается особый случай n = 0 -> n! = 1. Тип int лучше заменить на unsigned int, потому что факториал определен для неотрицательных чисел, а в программе нет соответствующей проверки.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |