1. c語言 計算程序運行時間
#include <stdio.h>
#include <time.h>
#define N 10000 /*這個數字可以自己改,如果時間太長結果不出來你就改小點*/
void f()
{
int i, j, k;
for ( i = 0; i < N; ++i )
for ( j = 0; j < N; ++j )
for ( k = 0; k < N; ++k )
;
}
int main()
{
clock_t begin, ration;
begin = clock();
f();
ration = clock() - begin;
printf( "函數f()的運行時間大約為:%dms\n", ration*1000/CLOCKS_PER_SEC );
}
2. C語言計算時間
在C語言中計算時間,可以使用標准庫中的計時函數——clock()。
函數原型:
clock_tclock(void);
其中clock_t是用來保存時間的數據類型,在time.h文件中,可以找到對它的定義:
#ifndef_CLOCK_T_DEFINED
typedeflongclock_t;
#define_CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#defineCLOCKS_PER_SEC((clock_t)1000)
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
voidelapsed_time()
{
printf("Elapsedtime:%usecs. ",clock()/CLOCKS_PER_SEC);
}
當然,也可以用clock函數來計算的機器運行一個循環或者處理其它事件到底花了多少時間:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}