Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рекурсивная функция, Расчет факториала числа 
:(
    Опции темы
Nerviwki
Дата 16.1.2011, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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;

     }
    
    
}





PM MAIL   Вверх
миг
Дата 16.1.2011, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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.
PM MAIL   Вверх
Metalex
Дата 16.1.2011, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Цитата(Nerviwki @  16.1.2011,  21:03 Найти цитируемый пост)
моя первая программа это вычисление факториала

размашисто для первой программы smile
В первой ты используешь n без ее инициализации.
Цитата(Nerviwki @  16.1.2011,  21:03 Найти цитируемый пост)
cout<<"Vvedite n n\";

Надо:
Код

cout<<"Vvedite n \n";

Код

for(int i=1; i<=n; i++)
    {
        answer*=i;

     }



--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Nerviwki
Дата 16.1.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Все исправил. биг сэнкью)).Я правильно понял что неважно то что в функции уже объявлена переменная(в данном случае n) ее всеравно надо объявлять в основной программе  
PM MAIL   Вверх
Metalex
Дата 16.1.2011, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Цитата(Nerviwki @  16.1.2011,  21:36 Найти цитируемый пост)
неважно то что в функции уже объявлена переменная

 smile 
Более того, переменная обьявленная в главной функции и переменная, обьявленная в дополнительной функции - 2 разные вещи. При вызове доп. ф-ции из главной ты передаешь параметр н, который копируется в тот параметр н, который находится всередине доп. ф-ции.
Читай книги. Так ты ничего не постигнешь.


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Skevalt
Дата 17.1.2011, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 30.11.2006

Репутация: нет
Всего: 3



В первой программе нужно ввести ветвь, в которой рассматривается особый случай n = 0 -> n! = 1. Тип int лучше заменить на unsigned int, потому что факториал определен для неотрицательных чисел, а в программе нет соответствующей проверки.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.