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はではなくfloat、整数型であり、おそらくは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);

結果として0.5の場合、整数除算のために0.0に切り捨てられるため、「float」としてキャストすることを忘れないでください。

その後、プログラムを実行するのにどのくらい時間がかかりますか?私の知る限り、時計には数ミリ秒の時間を測定する機能があるため、プログラムにかかる時間が数ミリ秒未満の場合、この時間を検出できない可能性があります(時計は比較的数秒の時間を測定するのに非常に適しています良い精度)

于 2012-11-16T15:08:30.490 に答える