Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Функция


Автор: Jolia 19.3.2007, 20:48
Здравствуйте еще раз!У меня опять проблема, никак не могу понять в чем ошибка...посмотрите пожалуйста smile 

а условие вот какое :
Сформировать массив X[N], n-й член которого определяется формулой X(N) = 1/N!.


Код

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>

double factorial(int n)
{int p=1;
int i=1;
while(i<=n)
{p=p*i;
i++;
}
return 1/p;
}


void main(void)
{clrscr();
int n;
    int *mas;
    cout<<"Vvedite kol-vo elementov masiva: ";
    cin>>n;
    cout<<"Poluchennii massiv: ";
    int i=0;
    while (i<n)
    {mas[i]=factorial(i+1);
    cout<<mas[i]<<" ";
    i++;}
getchar();}


Задачка несложная, а вот что-то не клеится) smile 

Автор: Fazil6 19.3.2007, 21:37
Код


#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>

double factorial(int n)
{
    if (!n) return 1;
    return n * factorial(n - 1);
}


void main(void)
{
  clrscr();
  int n;

  std::cout << "Vvedite kol-vo elementov masiva: ";
  std::cin >> n;
  std::cout << "Poluchennii massiv: ";
  int i=0;

  double *mas = new double[n];
  while (i < n)
  {
     mas[i] = 1  /  factorial(i);
     std::cout << mas[i] << " ";
     ++i;
  }
  delete [] mas;
  getchar();
}


Автор: Dov 19.3.2007, 21:44
Код
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>

double factorial(int n)
{
    int  p  = 1;
    int  i  = 1;

    while(i <= n)
    {
        p = p * i;
        i++;
    }

    return 1.0 / p;        // не 1, а именно 1.0 или 1. или (double)1
}

int main(void)
{
    int     n;
    double* mas;
    int     i  = 0;

    cout << "Vvedite kol-vo elementov masiva: ";
    cin  >> n;

    mas = new double[n];           // выделяем память под массив динамически

    cout << "Poluchennii massiv: ";
    while(i < n)
    {
        mas[i] = factorial(i + 1);
        cout << mas[i++] << ",  ";        
    }
    cout << endl;
    getchar();

    delete[] mas;                  // освобождаем память

    return 0;
}

Автор: Jolia 20.3.2007, 09:39
СПАСИБО ОГРОМНОЕ! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)