1. 程式人生 > >【C/C++程式碼練習26】PTA 然後是幾點

【C/C++程式碼練習26】PTA 然後是幾點

有時候人們用四位數字表示一個時間,比如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); 

但這麼寫,答案通不過。