好用的 time1(), time2() 副程式     
                            
                            
                        by 高顯忠, 2010-11-19 18:49, 人氣(2072)
                            以下,20億個 加法運算,需要多少時間?
只看 主程式的部份,是不是很簡潔啊?
#if 0
no=   2000000000, sum=  -1973237248, dt= 7.828
 Press [Esc] for stop! other key for continue...
#endif
// ----------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <sys/timeb.h>
#include <time.h>
// ----------------------------------------------
#include "sj-01.h"
// ----------------------------------------------
void time1(int *t1)
{
	struct _timeb timebuffer;
	int ms, sec;
	_ftime( &timebuffer );
	ms= timebuffer.millitm;
	sec= timebuffer.time;
	sec%= (21L*86400L);// max. = 24.8 day, so ...
	(*t1)= sec*1000 + ms;
}// end of time1()
// ----------------------------------------------
void time2(int t1, double *dt)
{
	int t2;
	time1(&t2);
	(*dt)= ((double) (t2 - t1))/1000.0;
	// (*dt) must >= 0
	if ((*dt) < 0) {
		(*dt)+= (21L*86400L);
	}
}// end of time2()
// ----------------------------------------------
int main()
{
	// 20億個 加法運算,需要多少時間?
	int no= (int) (20E8 + 0.5);// 四捨五入
	int sum, i, t1;
	double dt;
	time1(&t1);
	sum= 0;
	for (i=1;i<=no;i++) {
		sum+= i;
	}
	time2(t1, &dt);
	printf("no= %12ld, sum= %12ld, dt= %.3lf\n", no, sum, dt);
	pause();
	return 0;
}// end of main()
討論
            | 編號 | 標題 | 回應 | 讚 | 最後發表 | 
| 2688 | 1 | 0 | ||

 
        

 
                