中國有句俗話:三天打魚兩天曬網,某人從1990年1月1日開始“三天打魚兩天曬網”,問這個人在以后的某一天是在“打魚”還是在“曬網”。輸入年月日,輸出這天是在“打魚”還是在“曬網”的資訊。
提示:需要考慮閏年的問題。
要求:必須用函式呼叫的方式進行程式設計。
int Leapyear(int year):撰寫此函式,是閏年回傳1,不是回傳0
int CountDay(int year,int month,int day):撰寫此函式,回傳指定日期距離1990年1月1日的天數
#include <stdio.h>
int DaysPerMonth[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
int Leapyear(int year){
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
return 1;
return 0;
}
int CountDay(int year, int month, int day){
int i;
int sum = 0;
for (i = 1990; i < year; i++) {
if (Leapyear(i))
sum += 366;
else
sum += 365;
}
for (i = 1; i < month; i++) {
if (Leapyear(year))
DaysPerMonth[2] = 29;
sum += DaysPerMonth[i];
}
sum += day;
return sum;
}
int main(void) {
int year, month, day;
int TotalDay;
printf("請輸入指定日期:(y m d)");
scanf_s("%d%d%d", &year, &month, &day);
if (Leapyear(year))
DaysPerMonth[2] = 29;
if (month < 1 || month>12 || day<1 || day>DaysPerMonth[month]) {
printf("輸入錯誤!\n");
return 0;
TotalDay = CountDay(year, month, day);
if (TotalDay % 5 >= 1 && TotalDay % 5 <= 3)
printf("今天打魚");
else
printf("今天曬網");
}
}
uj5u.com熱心網友回復:
int main()
{
int year, month, day;
int TotalDay;
printf("請輸入指定日期:(y m d)");
scanf_s("%d%d%d", &year, &month, &day);
if (Leapyear(year))
DaysPerMonth[2] = 29;
if (month < 1 || month>12 || day<1 || day>DaysPerMonth[month]) {
printf("輸入錯誤!\n");
return 0;
}//-----------------添加右側大括號-----------
TotalDay = CountDay(year, month, day);
if (TotalDay % 5 >= 1 && TotalDay % 5 <= 3)
printf("今天打魚");
else
printf("今天曬網");
//------------右側大括號去掉------------
return 0;
}
uj5u.com熱心網友回復:
謝謝你啊 我看了半天都沒發現
uj5u.com熱心網友回復:
不客氣,我也是看了半天才發現的
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74524.html
標籤:C語言
上一篇:求大佬幫忙
下一篇:求大神指教
