📄 应用.txt
字号:
#include
//三天打鱼两天晒网.c
/*输入2003年后的年月日,判断这天是该打鱼还是该晒网!*/
void main()
{
int day,month,year;
int i,sumday,leap,sumtmp,ret;
sumday = 0;
printf("请输入2003年后的年份\n");
scanf("%d",&year);
while(year < 2003)
{
printf("输入的年份错误,请重新输入2003年后的年份\n");
scanf("%d",&year);
}
printf("请输入月份\n");
scanf("%d",&month);
while(month < 1||month >12)
{
printf("输入的月份错误!请重新输入月份\n");
scanf("%d",&month);
}
printf("请输入日期\n");
scanf("%d",&day);
while( Day(year,month,day) == -1)
{
printf("输入的日期错误!请重新输入日期\n");
scanf("%d",&day);
}
for(i = 2003; i < year; i++)
{
leap = Year(i);
if(leap == 1) { sumday += 1; }
}
sumtmp = Month(year,month,day);
sumday += sumtmp;
ret = sumday%5;
if(ret >= 1 && ret <= 3)
{
printf("这天该打鱼!\n");
}
else
{
printf("这天该晒网!\n");
}
return 0;
}
/*判断该天是该年的第几天*/
int Month(int year,int month,int day)
{
int sum;
int leap;
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum = sum + day;
leap = Year(year);
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
return sum;
}
/*判断该年是否是闰年*/
int Year(int year)
{
int leap;
if(year%400==0||(year%4==0&&year%100!=0))
leap = 1;/*是闰年*/
else
leap = 0;
return leap;
}
/*判断输入日期是否合法*/
int Day(int year,int month,int day)
{
int flag = 0;
if(day < 1){
flag = -1;
return flag;
}
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day > 31)
flag = -1;
break;
case 4:
case 6:
case 9:
case 11:
if(day > 30)
flag = -1;
break;
case 2:
if( Year(year) && day > 29 ) flag = -1;
else if( (Year(year) == 0 )&& day > 28 ) flag = -1;
break;
}
return flag;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -