a003: 兩光法師占卜術 (32)
更新時間:2016/12/22
內容:
兩光法師時常替人占卜,由於他算得又快又便宜,因此生意源源不絕,時常大排長龍,他想算得更快一點,因此找了你這位電腦高手幫他用電腦來加快算命的速度。他的占卜規則很簡單,規則是這樣的,輸入一個日期,然後依照下面的公式:
M=月
D=日
S=(M*2+D)%3
得到 S 的值,再依照 S 的值從 0 到 2 分別給與 普通、吉、大吉 等三種不同的運勢。
輸入說明:
月份及日期。
輸出說明:
運勢。
範例輸入:
1 1
1 2
範例輸出:
普通
吉
想一想,再看解答~
我的解題想法:
因為輸入的資料不確定有幾組,故使用迴圈 while。而 S 的值已確定是三個整數,我們使用 switch 分類。
程式碼:
#include <stdio.h> int main(void){ int m,d; while(~scanf("%d%d",&m,&d)){ switch((m*2+d)%3){ case 0: printf("普通\n"); break; case 1: printf("吉\n"); break; case 2: printf("大吉\n"); } }; return 0; }程式碼解析:
#1: | 引入標準輸入/輸出串流。 |
#2: | 主程式開始,回傳引數int,沒有參數。 |
#3: | 宣告2個整數(int)變數「m」、「d」,範圍–2,147,483,648 到 2,147,483,647。 |
#4: | 迴圈 while 開始。使用 while 搭配 scanf 判斷資料是否結束。從標準輸入讀取格式化數據。讀取2個整數(%d%d),依序指定值給「m」、「d」。 |
#5: | 條件判斷式 switch 開始。判斷 S 值, S = ((m*2+d)%3)。 |
#6: | 第1個條件,是否等於 0。 |
#7: | 將格式化數據顯示到標準輸出。輸出字串並換行「"普通\n"」 |
#8: | 第1個條件 中斷點。 |
#9: | 第2個條件,是否等於 1。 |
#10: | 將格式化數據顯示到標準輸出。輸出字串並換行「"吉\n"」 |
#11: | 第2個條件 中斷點。 |
#12: | 第3個條件,是否等於 2。 |
#13: | 將格式化數據顯示到標準輸出。輸出字串並換行「"大吉\n"」 |
#14: | 條件判斷式 switch 結束。 |
#15: | 迴圈 while 結束。 |
#16: | 主程式回傳整數「0」。 |
#17: | 主程式結束。 |