Witam mam pewien problem, otóż mam użyć w programie obiektu klasy array dla 100 wartości typu long double i obliczyć 100!
#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;
}
Oto co się wyswietla:
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.
natomiast gdy zmienie na typ
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
Uzywam dev c++4.9.9.2 Orwell update 5.62
Dodam że napisałem już na innym forum i powyższy kod nie działa tylko u mnie, tj inni sprawdzali i ich wyniki sa dobre.
Co może być przyczyną? Pozdrawiam