d068: 該減肥了!(15)
更新時間:2016/12/20
內容:珊珊開了一家體重管理中心。每當有新顧客上門,她就為她量體重。如果體重大於 50 公斤,她就免費送她一堂可以減一公斤的體驗課程。給你新顧客的體重,請輸出她離開中心時的體重。
輸入說明:
輸入只有一行,其中含有一個正整數 w,代表新顧客進門的體重。
輸出說明:
請輸出該顧客離開時的體重。
範例輸入:
60
範例輸出:
59
提示:
背景知識:
算術、比較運算子
你能只用算術、比較運算子而不用 if 解出這題嗎?
想一想,再看解答~
我的解題想法:
直接使用邏輯判斷式 if 。如果大於50公斤,則輸出時少1公斤;如果沒有大於50公斤,則輸出原體重。
♠使用判斷式 if-else 的解法
程式碼:
#include <stdio.h> int main(void){ int w; scanf("%d",&w); if(w>50){ printf("%d",w-1); }else{ printf("%d",w); } return 0; }程式碼解析:
#1: | 引入標準輸入/輸出串流。 |
#2: | 主程式開始,回傳引數int,沒有參數。 |
#3: | 宣告1個整數(int)變數「w」,範圍–2,147,483,648 到 2,147,483,647。 |
#4: | 從標準輸入讀取格式化數據。讀取1個整數(%d),指定值給「w」。 |
#5: | 邏輯判斷式 if 開始。判斷體重是否大於 50 公斤 (w>50)。 |
#6: | 將格式化數據顯示到標準輸出。輸出1個整數(%d)「w-1」。 |
#7: | 邏輯判斷式 else。 |
#8: | 將格式化數據顯示到標準輸出。輸出1個整數(%d)「w」。 |
#9: | 邏輯判斷式 if 結束。 |
#10: | 主程式回傳整數「0」。 |
#11: | 主程式結束。 |
進階想法:
接續13與14題進階的概念,(w>50)如果成立,則會傳回1;如果不成立,則會傳回0。
♠使用 只用算術與比較運算子 的解法
程式碼:
#include <stdio.h> int main(void){ int w; scanf("%d",&w); printf("%d",w-(w>50)); return 0; }程式碼解析:
#1: | 引入標準輸入/輸出串流。 |
#2: | 主程式開始,回傳引數int,沒有參數。 |
#3: | 宣告1個整數(int)變數「w」,範圍–2,147,483,648 到 2,147,483,647。 |
#4: | 從標準輸入讀取格式化數據。讀取1個整數(%d),指定值給「w」。 |
#5: | 將格式化數據顯示到標準輸出。輸出1個整數(%d)「w-(w>50)」。 |
#6: | 主程式回傳整數「0」。 |
#7: | 主程式結束。 |