clock()计算程序运行时间的函数求解!该怎么处理
clock()计算程序运行时间的函数求解!~
#include<stdio.h>
#include<time.h>
unsigned __int64 fun(unsigned __int64 x,int n) //求x^n
{
unsigned __int64 pw=1;
while(n)
{
if(n&1)
pw*=x;
x*=x;
n>>=1;
}
return pw;
}
int main()
{
unsigned __int64 x;
int n;
printf("输入64位的x,和32位的n\n");
while(scanf("%I64u%d",&x,&n)==2)
{
printf("输出x^n:\n");
printf("%I64u\n",fun(x,n));
printf("time used=%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
}
}
位什么每次运行所计算出来的时间都不一样呢?百度也百度不到。。。各种找不到,所以请求给位大虾帮我解答!
------解决方案--------------------
可以的:
#include<stdio.h>
#include<time.h>
unsigned __int64 fun(unsigned __int64 x,int n) //求x^n
{
unsigned __int64 pw=1;
while(n)
{
if(n&1)
pw*=x;
x*=x;
n>>=1;
}
return pw;
}
int main()
{
unsigned __int64 x;
int n;
printf("输入64位的x,和32位的n\n");
while(scanf("%I64u%d",&x,&n)==2)
{
printf("输出x^n:\n");
printf("%I64u\n",fun(x,n));
printf("time used=%.2lf\n",(double)clock()/CLOCKS_PER_SEC);
}
}
位什么每次运行所计算出来的时间都不一样呢?百度也百度不到。。。各种找不到,所以请求给位大虾帮我解答!
------解决方案--------------------
可以的:
- C/C++ code
#include <stdio.h> #include <stdlib.h> #include <time.h> void sleep( clock_t wait ); void main( void ) { long i = 600000L; clock_t start, finish; double duration; /* Delay for a specified time. */ printf( "Delay for three seconds\n" ); sleep( (clock_t)3 * CLOCKS_PER_SEC ); printf( "Done!\n" ); /* Measure the duration of an event. */ printf( "Time to do %ld empty loops is ", i ); start = clock(); while( i-- ) ; finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( "%2.1f seconds\n", duration ); } /* Pauses for a specified number of milliseconds. */ void sleep( clock_t wait ) { clock_t goal; goal = wait + clock(); while( goal > clock() ) ; }