C趣味程序百例(04)打魚還是曬網

C趣味程序百例(04)打魚還是曬網,第1張

C趣味程序百例(04)打魚還是曬網,第2張

11.釣魚還是曬網
中國有句俗話“三天打魚兩天曬網”。有人從1990年1月1日開始“三天打魚兩天曬網”,問這個人以後是“打魚”還是“曬網”。
*問題分析與算法設計
根據問題的含義,解題過程可分爲三步:
1)計算從1990年1月1日到約定日期的縂天數;
2)由於“捕魚”和“曬網”的周期爲5天,所以計算的天數除以5;
3)根據餘數判斷他是“釣魚”還是“曬網”;
如果餘數是1,2,3,那麽他就是在“釣魚”
否則就是在“曬網”
這三個步驟中,關鍵是第一步。求從1990年1月1日到約定日期有多少天,判斷經騐年份是否有閏年。二月29天,平年28天。閏年的方法可以用偽語句描述如下:
如果((一年可以除以4但不能除以100)或400)
則該年是閏年;
不然就不是閏年了。
在C語言中,可以用補碼運算(即模運算)來判斷是否可除
*程序和程序注釋
# include
int days(struct date day);
結搆日期{
int年;
int月;
int day;
};

void main()
{
struct date today,term
int yearday,year,day
printf("輸入年/月/日:");
scanf("%d%d%d",&today.year,&today.month,& today . day);
term . month = 12;
term . day = 31;
for (year day = 0,year = 1990year {
term . year = year;
year day = days(term);
}
year day = days(今天);
day = year day % 5;
if(day > 0 & & day else printf("那天他在睡覺。\ n");
}

int days(struct date day)
{
static int day _ tab[2][13]=
{ { 0,31,28,31,30,31,31,30,31,31,31,31,31,31,31,30,31。
int i,LP;
LP = day . year % 4 = = 0 & & day . year % 100!= 0 | | day.year % 400 = = 0

for(I = 1;I day . day = day _ tab[LP][I];
return day . day;
}
*運行結果
輸入年/月/日:19911025
他在白天釣魚。
輸入年/月/日:19921025

位律師廻複

生活常識_百科知識_各類知識大全»C趣味程序百例(04)打魚還是曬網

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情