首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言練習:三天打魚兩天曬網(分支結構應用)

     編輯:關於C語言

題目背景

「三天打魚,兩天曬網」是一個經典的 C 語言分支結構練習題。程式需根據輸入的天數,判斷該天是「出海打魚」還是「在家曬網」。規律為每 5 天一個循環:前 3 天打魚,後 2 天曬網。

核心邏輯

利用模運算(%)求出天數在循環中的位置:

  • 輸入天數 day
  • 計算 reminder = day % 5
  • reminder == 0 代表第 5 天(曬網)
  • reminder <= 3 代表第 1~3 天(打魚)
  • 其餘情況(reminder == 4)代表第 4 天(曬網)

完整代碼示例

 1 /* B3-分支-03. 三天打魚兩天曬網 */
 2 /* Main.c */
 3 /* 測試通過 */
 4 
 5 #include <stdio.h>
 6 #include <stdlib.h>
 7 
 8 int main() 
 9 {
10     int day;
11     int reminder;
12 
13     scanf("%i", &day);
14     if (day <= 0 || day > 1000)
15         exit(0);
16     reminder = day % 5;
17     if (reminder == 0)
18     {
19         printf("Drying in day %i\n", day);
20     }
21     else
22     {
23         if (reminder <= 3)
24         {
25             printf("Fishing in day %i\n", day);
26         }
27         else
28         {
29             printf("Drying in day %i\n", day);
30         }
31     }
32     return 0;
33 }

關鍵點解析

  • 輸入驗證:確保天數在 1~1000 範圍內,否則直接退出。
  • 模運算應用:day % 5 將無限大的天數映射到 0~4 的循環區間。
  • 分支嵌套:外層判斷是否為第 5 天(餘數 0),內層區分前 3 天與第 4 天。
  • 邊界處理:餘數 0 視為第 5 天,屬於曬網;餘數 1、2、3 為打魚;餘數 4 為曬網。

進階思考

若需擴展為「N 天打魚,M 天曬網」,只需將固定值 3、5 改為變量,並調整判斷條件為 reminder == 0 || reminder > N 即為曬網,其餘為打魚。這體現了模運算在周期性問題中的強大威力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved