Witam!
Mam pewien problem z obliczaniem czasu działania algorytmu. Poniżej zamieszczam kod programu. Chodzi o to, że wszystko działa dla jednokrotnego obliczenia, jednak gdy całość jest zapakowana w pętle for, która ma powtórzyć mierzenie czasu i zadany algorytm to wtedy kolejne wyniki pojawiają się jako 0. Czemu tak ? proszę o pomoc
#include<iostream>
#include <math.h>
#include <windows.h>
using namespace std;
int freq, start, end, diff;
double czas;
int main()
{
cout.precision(15);
cout.setf(ios::fixed,ios::floatfield);
double a,b,dokl=0.00000000001;
int n=1;
for (int i=0;i<5;i++)
{
QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
QueryPerformanceCounter((LARGE_INTEGER*)&start);
do
{
a= pow ((1 + 1 / double(n) ), n);
b= pow ((1 + 1 /double(n+1)), n+1);
n++;
} while((b-a)>dokl);
cout<<"e= "<<b<<endl;
QueryPerformanceCounter((LARGE_INTEGER*)&end);
diff = ((end - start) * 1000) / freq;
unsigned int milliseconds = (unsigned int)(diff & 0xffffffff);
cout << milliseconds <<endl;
}
system("PAUSE >null");
}
wynik:
e= 2.718271172997878
47
e= 2.718271313793099
0
e= 2.718271337088421
0
e= 2.718271357455267
0
e= 2.718271360923156
0