d066: 上學去吧!(19)
更新時間:2016/12/20
內容:板橋高中規定同學必須在 7:30 以前到校早自習,最後一堂課則在 17:00 下課。給你現在的時間,請判斷現在是上學時間或放學時間。
輸入說明:
輸入只有一行,其中含有兩個由空格隔開的整數 hh 及 mm,hh:mm 則代表現在的時間 (24小時制)。
輸出說明:
如果現在是上學時間,請輸出「At School」,否則請輸出「Off School」。
範例輸入:
17 00
範例輸出:
Off School
提示:
背景知識:
if 算數、關係、邏輯運算子
想一想,再看解答~
我的解題想法:
分別記錄「時」與「分」,並判斷早上7:30與下午17:00之間的狀況。
♠使用判斷式 if-else 的解法
程式碼:
#include <stdio.h>
int main(void){
int hh,mm;
scanf("%d%d",&hh,&mm);
if((hh==7 && mm>=30)||(hh>=8 && hh<=16)){
printf("At School");
}else{
printf("Off School");
}
return 0;
}
程式碼解析:
| #1: | 引入標準輸入/輸出串流。 |
| #2: | 主程式開始,回傳引數int,沒有參數。 |
| #3: | 宣告2個整數(int)變數「hh」、「mm」,範圍–2,147,483,648 到 2,147,483,647。 |
| #4: | 從標準輸入讀取格式化數據。讀取2個整數(%d%d),依序指定值給「hh」、「mm」。 |
| #5: | 邏輯判斷式 if 開始。判斷 時間介於7:30與17:00之間 (hh==7 && mm>=30)||(hh>=8 && hh<=16)。 |
| #6: | 將格式化數據顯示到標準輸出。輸出字串「At School」。 |
| #7: | 邏輯判斷 else。 |
| #8: | 將格式化數據顯示到標準輸出。輸出字串「Off School」。 |
| #9: | 邏輯判斷式 if 結束。 |
| #10: | 主程式回傳整數「0」。 |
| #11: | 主程式結束。 |
♠使用 三元運算子 ? : 的解法
程式碼:
#include <stdio.h>
int main(void){
int hh,mm;
scanf("%d%d",&hh,&mm);
printf("%s",(hh==7 && mm>=30)||(hh>=8 && hh<=16) ? "At School" : "Off School");
return 0;
}
程式碼解析:
| #1: | 引入標準輸入/輸出串流。 |
| #2: | 主程式開始,回傳引數int,沒有參數。 |
| #3: | 宣告2個整數(int)變數「hh」、「mm」,範圍–2,147,483,648 到 2,147,483,647。 |
| #4: | 從標準輸入讀取格式化數據。讀取2個整數(%d%d),依序指定值給「hh」、「mm」。 |
| #5: | 將格式化數據顯示到標準輸出。輸出1個字串(%s)「(hh==7 && mm>=30)||(hh>=8 && hh<=16) ? "At School" : "Off School"」。 如果 (hh==7 && mm>=30)||(hh>=8 && hh<=16) 成立,輸出 At School ;否則輸出 Off School 。 |
| #6: | 主程式回傳整數「0」。 |
| #7: | 主程式結束。 |