5-2 然后是幾點
有時候人們用四位數字表示一個時間,比如1106表示11點零6分。現在,你的程序要根據起始時間和流逝的時間計算出終止時間。
讀入兩個數字,第一個數字以這樣的四位數字表示當前時間,第二個數字表示分鐘數,計算當前時間經過那么多分鐘后是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鐘數可能超過60,也可能是負數。
輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鐘數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鐘數可能超過60,也可能是負數。
輸出四位數字表示的終止時間。題目保證起始時間和終止時間在同一天內。
1120 110輸出樣例:
1310這是我一開始做的稍微啰嗦的代碼
#include <stdio.h> int main() { int past,fly; int hour1,minute1; int hour2,minute2; int minute3,hour3; scanf("%d %d",&past,&fly); hour1=fly/60; /*將流逝的時間變成xx小時xx分鐘的形式*/ minute1=fly%60; hour2=past/100; minute2=past%100; minute3=minute1+minute2; hour3=hour1+hour2; if(minute1+minute2>=60){ /*若相加的分鐘數大于等于60,小時數增加一 */ minute3=minute3-60; hour3=hour3+1; } if (minute1+minute2<0){ /*若增加的分鐘數為負數,小時數借一位,小時數減一*/ minute3=minute3+60; hour3=hour3-1; } if(minute3==0) /*考慮分鐘數為0的特殊情況*/ PRintf("%d00",hour3); else printf("%d%d",hour3,minute3); return 0;} 后來我發現其實應該把小時換算成分鐘,這樣更簡潔(~~~~(>_<)~~~~,新手一枚)改進了一下#include<stdio.h>int main(){ int past,fly; int x; scanf("%d %d", &past , &fly); x=(past/100)*60+past%100; printf("%d",(x+fly)/60*100+(x+fly)%60); return 0; } 確實比之前的代碼簡潔多了。
新聞熱點
疑難解答