首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言基礎練習:時間計算(起始時間 + 經過分鐘 = 結束時間)

     編輯:關於C語言

C語言基礎練習:時間計算(起始時間 + 經過分鐘 = 結束時間)

經典輸入處理題:讀取「四位數字表示的時間」(如 1106 表示 11:06)與經過分鐘數,計算結束時間。小時為個位數時無前導零(如 530 表示 5:30)。分鐘數可超過 60 或為負數。保證同一天內。

輸入輸出範例


輸入:1120 110
輸出:1310
解析:11:20 + 110分鐘 = 13:10

核心邏輯

  1. 解析時間:hour = time / 100,minute = time % 100
  2. 轉換為總分鐘:total = hour * 60 + minute + delta
  3. 轉回時分:new_hour = total / 60,new_min = total % 60
  4. 組合輸出:result = new_hour * 100 + new_min

完整代碼


#include <stdio.h>

int main() {
    int time, delta;
    scanf("%d %d", &time, &delta);
    
    int total_min = (time / 100) * 60 + (time % 100) + delta;
    int new_hour = total_min / 60;
    int new_min = total_min % 60;
    
    // 處理負分鐘情況(C語言%負數行為)
    if (new_min < 0) {
        new_min += 60;
        new_hour -= 1;
    }
    
    int result = new_hour * 100 + new_min;
    printf("%d\n", result);
    return 0;
}

關鍵點解析

情況處理
分鐘進位(≥60)total_min / 60 自動進位小時
分鐘借位(負數)C中 -5 % 60 = -5,需手動調整:+60, hour-1
小時個位數直接 hour * 100,無前導零,符合題意
跨天題目保證同一天,無需處理 24 小時循環

擴展思考

  • 若需支持跨天:new_hour %= 24,負數加 24
  • 若輸入格式含冒號 11:20:用 scanf("%d:%d", &h, &m)
  • 用 struct tm + mktime 處理複雜日期時間運算

總結

時間計算的核心是統一轉換為最小單位(分鐘/秒)運算,再轉回顯示格式。注意 C 語言負數取模行為,養成防御性調整習慣。此類題目考察基本運算、輸入解析與邊界處理能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved