作业帮 > 综合 > 作业

c语言年月日计算再次给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/04 22:53:12
c语言年月日计算
再次给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几.
输入:
年 月 日
输出:
6.
星期日用 0 表示,星期一用 1 表示,星期二用 2 表示.星期六用 6 表示.
假设年份大于1900.先想一想:我们现在只会使用 if 语句,该如何建立数学模型?
#include
int main()
{
int day,mn,yr,i,days=0,s,k;
int mont[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d %d %d",&yr,&mn,&day);
if (mn>12)
printf("month is error.\n");
else if
(mn==2&&yr%4!=0&&day>28)
printf("day is error.\n");
else if
(mn==2&&yr%4==0&&day>29)
printf("day is error.\n");
else if
((mn==1||mn==3||mn==5||mn==7||mn==8||mn==10||mn==12)&&day>31)
printf("day is error.\n");
else if
((mn==4||mn==6||mn==9||mn==11)&&day>30)
printf("day is error.\n");
else{
if (yr%4==0||yr%100==0||yr%400==0)
mont[2]=29;
else
mont[2]=28;
for (i=0;i
c语言年月日计算再次给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的
首先,你的闰年判断就有问题.教你个口诀:“四年一润,一百年不润,四百年再润”.
其实就可以用if(yr%4==0||yr%100!=0&&yr%400==0){那么是闰年}
你的检验判断也可以利用mont数组的,首先判断是不是在闰年,然后判断输入days是不是大于的mont[mn](如果是闰年要判断二月+1).