某人從2023年1月1日起開始「三天打魚兩天曬網」,問這個人在以後的某一天中是「打魚」還是「曬 網」。
基本要求:
1.程式風格良好(使用自定義注釋模板),提供友好的輸入輸出。
提高要求:
1.輸入資料的正確性驗證。
2.使用檔案進行資料測試。如將日期 20100101 20111214 等資料儲存在in.txt檔案中,程式讀入in.dat檔案進行判定,並將結果 輸出至out.txt檔案。
計算指定日期與2023年1月1日相距的天數,記為r,再用r%5來得到此人正在打魚還是篩網。
(1),r的計算:總的思路:r=年+月+日,即指定日期距2023年1月1日經過的年,月,日,具體演算法見詳細**;
(2),判斷日期是否合法;
(3),判斷正在打魚還是篩網:w=r%5;若w=1,2,3時,正在打魚;
(4),測試日期寫在in.txt中,將結果儲存在out.txt中。
#include
#include
//檔案操作
using namespace std;
struct date //定義乙個結構體來儲存日期
d;int
judge
(int year)
//判斷是否是閏年,是閏年返回1,否則返回0
intremainder
(int year,
int month,
int day)
//計算據2023年1月1日共多少天,賦值給r
;//閏年
int commonyear[12]
=;//平年
for(
int i = year; i !=
2010
; i--)if
(judge
(i)==1)
r +=366
;else r +
=365;if
(judge
(year)==1
)for
(int j =
0; j <
(month -1)
; j++
) r = r + leapyear[j]
;else
for(
int k =
0; k <
(month -1)
; k++
) r = r + commonyear[k]
; r = r + day;
return
(r);
}int
islegal
(int year,
int month,
int day)
//判斷日期是否合法
return1;
}int
main()
for(
int i =
0; i <
5; i++
) file.
close()
;}ifstream infile
("in.txt"
, ios:
:out)
;//從檔案中讀取資料
ofstream ofile
("out.txt"
, ios:
;//開啟out.txt,將結果儲存在該檔案中if(
#七、總結:
在程式設計的過程中,練習了c++對日期的處理,同時複習了檔案操作。
補充:2019/11/15
判斷乙個日期是否合法
#define _crt_secure_no_warnings
#include
#include
// 判斷日期是否合法
intmain()
else
system
("pause");
return0;
}
三天打魚,兩天曬網。
判斷某人從2010年1月1日起開始 三天打魚,兩天曬網 到之後某一天是在打漁還是曬網 設計日期 2019.3.1 include define year 2010 void main 用陣列表示每月的天數 printf 請輸入所要判斷的時間 n scanf 4d 2d 2d year,month,d...
三天打魚兩天曬網問題
中國有句俗語叫 三天打魚兩天曬網 某人從2010年1月1日起開始 三天打魚兩天曬網 問這個人在以後的某一天是 打魚 還是 曬網 1 輸入乙個年月日,判斷輸入的年月日是否符合實際。如果輸入符合要求,計算從2010年1月1日到所輸入日期的總天數。總天數的演算法 首先計算從2010到所輸入年份的所有年的天...
用C 解決「三天打魚兩天曬網」問題
中國有句俗語叫 三天打魚兩天曬網 某人從2010年1月1日起開始 三天打魚兩天曬網 問這個人在以後的某一天中是 打魚 還是 曬網 用c或c 語言實現程式解決問題。基本要求 1.程式風格良好 使用自定義注釋模板 提供友好的輸入輸出。提高要求 1.輸入資料的正確性驗證。2.使用檔案進行資料測試。如將日期...