2

我完成了一个类项目的编程,但我仍然需要获得运行时间。我尝试了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。有人能告诉我正确的方法吗?谢谢!

4

2 回答 2

2

clock_t不是 a float,而是整数类型,很可能是 a long

所以你可能会习惯%ldprintf()


也不clock()返回秒数,但 CPU 滴答声。因此,要获得秒,返回的值clock()应除以系统常量CLOCKS_PER_SEC

于 2012-11-16T15:07:30.213 回答
0

菲尔你以正确的方式做(也许你也应该除以 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。

在那之后你的程序需要多长时间才能执行?因为据我所知,时钟具有测量几毫秒时间的能力,所以如果你的程序花费的时间少于几毫秒,很可能不会检测到这个时间(时钟非常适合测量几秒的时间,相对精度好)

于 2012-11-16T15:08:30.490 回答