c语言 计算程序运行时间

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, duration;

begin = clock();
f();
duration = clock() - begin;
printf( "函数f()的运行时间大约为:%dms\n", duration*1000/CLOCKS_PER_SEC );
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-08
在原来的程序中加上<time.h>的头文件然后在需要测试时间的程序段首尾分别加上begin=clock();end=clock();语句end-begin既是要求的时间
第2个回答  2013-11-08
在程序开始时取系统时间,结束时再取一个系统时间,减一下就可以了
第3个回答  2013-11-09
#include
#include
int q(int n,int m)
{
if((n<1)||(m<1))return 0;
if((n==1)||(m==1))return 1;
if(n<m)return q(n,n);
if(n==m)return q(n,m-1)+1;
return q(n,m-1)+q(n-m,m);
}
int main()
{
int a, b, c;
clock_t tb, te;

printf("the first clock = %d\n", tb=clock()); //打印输出进程运行到此时的挂钟数(近似进程开始)
scanf("%d %d",&a,&b);
c=q(a,b);
printf("%d\n\n",c);
printf("the last clock = %d\n", te=clock()); //打印输出进程运行到此时(快结束而未结束)的挂钟数
printf("%f秒\n", (float)(te-tb)/CLK_TCK); //把挂钟数转换成时间输出

return 0;
}

【说明】clock_t clock(); 函数返回从“开启这个程序进程”到“程序中调用clock() ”时之间的cpu时钟计数单元(clock tick)【这个句话请仔细体会】;另外,clock_t 实为长整型

【错误】在你的代码中,最后一个语句:printf("%lf毫秒",(tb-te)/CLK_TCK); 有误,不是 tb-be ,是 te-tb
【补充】有趣的是,系统计时包括 scanf() 语句等待输入时间,所以你输入快一些或慢一些直接影响到你的第二次周用clock()函数: te = clock(); ,所以 te 这个值取决于你的输入快慢(scanf());如果你把第一个 printf()语句放到 scanf() 语句后面去,则你得到的结果将会是0,因为后面两行代码运行太--快--了,就是楼上这位仁兄所说“程序太小,电脑秒杀了”,自己去试试,体会一下吧,祝你学习愉快!
相似回答