1. 程式人生 > >1026. 程式執行時間(15)--做題記錄

1026. 程式執行時間(15)--做題記錄

要獲得一個C語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock()函式,可以捕捉從程式開始執行到clock()被呼叫時所耗費的時間。這個時間單位是clock tick,即“時鐘打點”。同時還有一個常數CLK_TCK,給出了機器時鐘每秒所走的時鐘打點數。於是為了獲得一個函式f的執行時間,我們只要在呼叫f之前先呼叫clock(),獲得一個時鐘打點數C1;在f執行完成後再呼叫clock(),獲得另一個時鐘打點數C2;兩次獲得的時鐘打點數之差(C2-C1)就是f執行所消耗的時鐘打點數,再除以常數CLK_TCK,就得到了以秒為單位的執行時間。

這裡不妨簡單假設常數CLK_TCK為100。現給定被測函式前後兩次獲得的時鐘打點數,請你給出被測函式執行的時間。

輸入格式:

輸入在一行中順序給出2個整數C1和C1。注意兩次獲得的時鐘打點數肯定不相同,即C1 < C2,並且取值在[0, 107]。

輸出格式:

在一行中輸出被測函式執行的時間。執行時間必須按照“hh:mm:ss”(即2位的“時:分:秒”)格式輸出;不足1秒的時間四捨五入到秒。

輸入樣例:
123 4577973
輸出樣例:
12:42:59

#include <iostream>

using namespace std;

int main() {

  float c1, c2;
  float time = 0;
  
  int hour = 0, min = 0, sec = 0;

  cin>>c1>>c2;

  time = (c2 - c1) / 100;
  
  hour = time / 3600;
  time -= (hour * 3600);

  min = time / 60;
  time -= (min * 60);


  time *= 10;
  time += 5;
  time /= 10;

  sec = time;

  if (hour < 10) {
    printf("0%d:",hour);
  }else {
    printf("%d:",hour);
  }

  if (min < 10) {
    printf("0%d:",min);
  }else {
    printf("%d:",min);
  }

  if (sec < 10) {
    printf("0%d",sec);
  }else {
    printf("%d",sec);
  }

  return 0;
}