トピックコンテンツ
C言語プログラムの実行時間を取得するための一般的な方法は、ヘッダーファイルtime.hを呼び出すことです。このファイルは、プログラムの開始からclock()が実行されるまでの時間をキャプチャできるclock()関数を提供します。と呼ばれます。この時間単位はクロックティック、つまり「クロックティック」です。定数CLK_TCKもあります。これは、マシンクロックが1秒あたりに移動するクロックティック数を示します。したがって、関数fの実行時間を取得するには、fを呼び出す前にclock()を呼び出して、クロックティック番号C1を取得するだけです。fが実行された後にclock()を呼び出して、別のクロックティック番号C2を取得します。得られたクロックティック数の差(C2-C1)は、fの動作によって消費されたクロックティック数を定数CLK_TCKで割って、秒単位の実行時間を取得します。
ここでは、定数CLK_TCKが100であると単純に仮定できます。ここで、テスト対象の関数の前後に取得されたクロックティック数を考慮して、テスト対象の関数の実行時間を指定してください。
入力フォーマット:
入力は、2つの整数C1とC2を1行に順番に与えます。2回取得されるクロックティックの数は完全に同じではないことに注意してください。つまり、C1 <C2であり、値は[0,107]にあります。
出力フォーマット:
テスト対象の関数が実行された時間を1行で出力します。hh:mm:ss
経過時間は(つまり、2桁の )形式で出力する必要があります 时:分:秒
。1秒未満の時間は、最も近い秒に丸められます。
入力サンプル:
123 4577973
最後に空白行はありません
サンプル出力:
12:42:59
最後に空白行はありません
問題解決のアイデア
読み取った数値を引いた後、ミリ秒/ 100を秒に変換してから、秒を時間に変換します。
詳細なコード
#include <iostream>
#include <cmath>
using namespace std;
int main(){
cin.tie();
double c1,c2,tt;
cin>>c1>>c2;
tt = (c2-c1)/100;
int h,m,s;
h = tt/3600;
m = (tt-h*3600)/60;
s = round(tt-h*3600-m*60);
printf("%02d:%02d:%02d",h,m,s);
return 0;
}