Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

obiekt klasy array

Ostatnio zmodyfikowano 2014-05-04 16:59
Autor Wiadomość
winio94
Temat założony przez niniejszego użytkownika
obiekt klasy array
» 2014-04-30 17:33:30
Cześć. Mam użyć w programie obiektu klasy array dla 100 wartości typu long double i obliczyć 100!
C/C++
#include<iostream>
#include<array>
#include<conio.h>

using namespace std;
const int Arsize = 101;
int main()
{
    array < long double, Arsize > tabarr;
    //tabarr[0]=1;
    // cout<<tabarr[0];
    tabarr[ 1 ] = tabarr[ 0 ] = 1;
    for( int i = 2; i < Arsize; i++ )
    {
        tabarr[ i ] = i * tabarr[ i - 1 ];
       
    }
    for( int i = 0; i < Arsize; i++ )
         cout << i << "! = " << tabarr[ i ] << endl;
   
   
    getch();
    return 0;
   
}
dlaczego wyniki sa z minusami oraz wartośc 2! jest -0?(obie sytuacje nie mają miejsca jeżeli wartości byłyby typu dobule, int lub long int czy nawet long long int)
P-108968
Monika90
» 2014-04-30 17:53:03
Moim zdaniem ten program jest poprawny, tzn. nie zachowuje się tak jak opisałeś.
P-108970
winio94
Temat założony przez niniejszego użytkownika
» 2014-04-30 18:10:02
LONG DOUBLE:

0! = -0
1! = -0
2! = -0
3! = -2
4! = -2
5! = -3.10504e+231
6! = -3.18618e-058
7! = -1.35666e-166
8! = -1.35666e-166
9! = -9.05568e-072
10! = -2.13401e+142
11! = -9.31519e-192
12! = -4.72401e+175
13! = -2.5143e-031
14! = -4.57401e-143
15! = -6.07857e-192
16! = -6.07857e-192
17! = -3.9374e-146
18! = -1.00067e-048
19! = -2.14614e+116
20! = -1.06929e-274
21! = -2.02307e-071
22! = -2.9729e+249
23! = -1.98327e-081
24! = -2.32675e-292
25! = -2.14112e+064
26! = -8.51497e-122
27! = -2.52495e-247
28! = -6.25641e+261
29! = -3.79461e+150
30! = -2.38193e+083
31! = -8.00952e+051
32! = -8.00952e+051
33! = -2.5684e+082
34! = -2.16718e+145
35! = -4.14765e+245
36! = -5.35079e-267
37! = -3.48066e-164
itd.


LONG LONG INT

0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
17! = 355687428096000
18! = 6402373705728000
19! = 121645100408832000
20! = 2432902008176640000
21! = -4249290049419214848
22! = -1250660718674968576
23! = 8128291617894825984
24! = -7835185981329244160
25! = 7034535277573963776
26! = -1569523520172457984
27! = -5483646897237262336
28! = -5968160532966932480
29! = -7055958792655077376
30! = -8764578968847253504
31! = 4999213071378415616
32! = -6045878379276664832
33! = 3400198294675128320
34! = 4926277576697053184
35! = 6399018521010896896
36! = 9003737871877668864
37! = 1096907932701818880

itd.(później same zera z powodu wiadomego)

Raczej nie pisałbym gdyby działał dobrze ;)
P-108974
Monika90
» 2014-04-30 18:16:10
P-108975
winio94
Temat założony przez niniejszego użytkownika
» 2014-04-30 18:26:10
No to musze przyznac że jestem w lekkim szoku :D
Jaka może być przyczyna tego zjawiska?Wyniki sa całkowicie inne. Pracuję na Devie c++ 6.62.
P-108978
MrPoxipol
» 2014-04-30 18:47:28
Kompilujesz z flagą std=c++11?
P-108980
winio94
Temat założony przez niniejszego użytkownika
» 2014-04-30 19:47:32
tak, jesli chodzi Ci o to co dopisałem do polecen kompilatora
-std=c++11
P-108987
MrPoxipol
» 2014-04-30 19:55:48
Pracuję na Devie c++ 6.62.
Taka wersja chyba nie istnieje? (nie wiem dokładnie)
Podaj najlepiej wersje kompilatora. Tak czy siak. Kod jest dobry.
P-108989
« 1 » 2 3
  Strona 1 z 3 Następna strona