
c语言输入一个日期 输出结果为下一天的日期 求帮我看看哪里不对怎么输入2013 2 28号出来是2013 2 29
#include<stdio.h>intmain(){intyear,mon,day;doublea;printf("请输入当前日期,按照年/月/日\n");scanf(...
#include<stdio.h>
int main()
{
int year,mon,day;
double a;
printf("请输入当前日期,按照年/月/日\n");
scanf("%d %d %d",&year,&mon,&day);
day=day+1;
if((mon==1||3||5||7||8||10)&&day==31){
mon=mon+1;
day=1;
}
if((mon==4||6||9||11)&&day==30){
mon=mon+1;
day=1;
}
if ((mon==2)&&(day==28)&&(year%4!=0)){
mon=mon+1;
day=1;
}
if(mon==12){
year=year+1;
mon=1;
day=1;
}
if((mon==2)&&(day==28)&&(year%4==0)){
mon=2;
day=day+1;
}
printf("下一天的时间为年/月/日:%d %2d %2d ",year,mon,day);
return 0;
} 展开
int main()
{
int year,mon,day;
double a;
printf("请输入当前日期,按照年/月/日\n");
scanf("%d %d %d",&year,&mon,&day);
day=day+1;
if((mon==1||3||5||7||8||10)&&day==31){
mon=mon+1;
day=1;
}
if((mon==4||6||9||11)&&day==30){
mon=mon+1;
day=1;
}
if ((mon==2)&&(day==28)&&(year%4!=0)){
mon=mon+1;
day=1;
}
if(mon==12){
year=year+1;
mon=1;
day=1;
}
if((mon==2)&&(day==28)&&(year%4==0)){
mon=2;
day=day+1;
}
printf("下一天的时间为年/月/日:%d %2d %2d ",year,mon,day);
return 0;
} 展开
5个回答
展开全部
别嫌我啰嗦,你这个程序问题有以下几个:
1,控制语句不合理,可能会重复判断 应该像:if() ;else if();..... else();
2,if语句里面的条件有问题 应该像这样:if((mon=2)&&(day=28)&&(year%4==0))
3,判断闰年的条件有问题,四年一闰,百年不闰,四百年闰。
//4,这个只能判断每个月的最后一天 //这里是我错了 可以判断任何一天。
1,控制语句不合理,可能会重复判断 应该像:if() ;else if();..... else();
2,if语句里面的条件有问题 应该像这样:if((mon=2)&&(day=28)&&(year%4==0))
3,判断闰年的条件有问题,四年一闰,百年不闰,四百年闰。
//4,这个只能判断每个月的最后一天 //这里是我错了 可以判断任何一天。
展开全部
不对的地方很多啊。上来就day自加,明显不对;当day==31时,mon+1可以,day应该=0;
而且闰年的判断是能被400整除同时能被4整除儿不能被100整除!
而且闰年的判断是能被400整除同时能被4整除儿不能被100整除!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先判断 再DAY=DAY+1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好多年没看这东西了,现在看到就头痛。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也是。。。我跟你写的差不多的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询