2015年5月22日 星期五

d050:妳那裡現在幾點了(4)

d050: 妳那裡現在幾點了(4)

更新時間:2016/12/20
內容
  珊珊到了美國猶他州的楊百翰大學之後,文文禁不住對她的思念,常常想打電話給她,卻又擔心在美國的她是不是在睡覺。好不容易鼓起勇氣打通了電話,第一句就先問:「妳那裡現在幾點了?」請你幫文文寫一個程式,輸入台灣時間後,算出美國山區時間。
輸入說明
  輸入僅有一行,其中含有一個整數 h (0 ≤ h ≤ 23),代表台灣時間現在幾點 (24 小時制)。因為美國時間的分與台灣時間的分相同,因此幾分就不用輸入計算了。
輸出說明
  輸出美國山區時間 (24 小時制)。台灣的時間比美國山區時間快 15 小時 (不考慮日光節約時間)。
範例輸入
  21
範例輸出
  6
提示
背景知識
  變數、輸出入、運算子
你能只用算術運算子來求出解答,而不需要用到 if 指令嗎?


想一想。再看解答~


我的解題想法:
  台灣的時間比美國山區時間快15小時,如果台灣的時間再加上9小時,就會比美國山區時間快24小時了!



程式碼:
#include <stdio.h>
int main(void){
    int h;
    scanf("%d",&h);
    printf("%d",(h+9)%24);
    return 0;
}
程式碼解析
#1:引入標準輸入/輸出串流。
#2:主程式開始,回傳引數int,沒有參數。
#3:宣告一個整數(int)變數「h」,範圍–2,147,483,648 到 2,147,483,647。
#4:從標準輸入讀取格式化數據。讀取1個整數(%d),指定值給「h」。
#5:將格式化數據顯示到標準輸出。輸出1個整數(%d)「(h+9)%24」。
#6:主程式回傳整數「0」。
#7:主程式結束。