【C/C++程式碼練習26】PTA 然後是幾點
阿新 • • 發佈:2018-12-21
有時候人們用四位數字表示一個時間,比如1106表示11點零6分。現在,你的程式要根據起始時間和流逝的時間計算出終止時間。
讀入兩個數字,第一個數字以這樣的四位數字表示當前時間,第二個數字表示分鐘數,計算當前時間經過那麼多分鐘後是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鐘數可能超過60,也可能是負數。
輸入格式:
輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鐘數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鐘數可能超過60,也可能是負數。
輸出格式:
輸出四位數字表示的終止時間。題目保證起始時間和終止時間在同一天內。
輸入樣例:
1120 110
輸出樣例:
1310
此題解法如下:
#include <stdio.h> int main(void) { int begining_time, passing_time; scanf("%d %d", &begining_time, &passing_time); // 讀入當前時間,以及流逝的時間 int hour, minute; minute = begining_time % 100; // 分離出當前時間的分鐘數 hour = begining_time / 100; // 分離出當前時間的小時數 int sum_minute; sum_minute = hour*60 + minute + passing_time; // 計算總的分鐘數 hour = sum_minute / 60; minute = sum_minute % 60; printf("%d%02d\n", hour, minute); return 0; }
需要指出的是,個人認為此題有個小問題,題目要求輸出的是4位數字,程式最後輸出應是:
printf("%02d%02d\n", hour, minute);
但這麼寫,答案通不過。