我完成了一个类项目的编程,但我仍然需要获得运行时间。我尝试了clock() 函数,但它不起作用。
int main()
{
clock_t start_time=clock();
(my codes)
clock_t end_time=clock();
printf("The running time is %f", end_time-start_time);
}
我想这是使用时钟功能的正确方法,对吗?但我得到的只有 0.000000。有人能告诉我正确的方法吗?谢谢!
我完成了一个类项目的编程,但我仍然需要获得运行时间。我尝试了clock() 函数,但它不起作用。
int main()
{
clock_t start_time=clock();
(my codes)
clock_t end_time=clock();
printf("The running time is %f", end_time-start_time);
}
我想这是使用时钟功能的正确方法,对吗?但我得到的只有 0.000000。有人能告诉我正确的方法吗?谢谢!
clock_t
不是 a float
,而是整数类型,很可能是 a long
。
所以你可能会习惯%ld
它printf()
。
也不clock()
返回秒数,但 CPU 滴答声。因此,要获得秒,返回的值clock()
应除以系统常量CLOCKS_PER_SEC
。
菲尔你以正确的方式做(也许你也应该除以 CLOCKS_PER_SEC)
float time = (float)(end_time-start_time)/(float)CLOCKS_PER_SEC;
printf("The running time is %f", time);
并且不要忘记将其转换为“float”,因为如果结果为 0.5,由于整数除法,它将向下舍入为 0.0。
在那之后你的程序需要多长时间才能执行?因为据我所知,时钟具有测量几毫秒时间的能力,所以如果你的程序花费的时间少于几毫秒,很可能不会检测到这个时间(时钟非常适合测量几秒的时间,相对精度好)