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;
}
展开
 我来答
ll367668
2013-03-22
知道答主
回答量:8
采纳率:0%
帮助的人:1.1万
展开全部
别嫌我啰嗦,你这个程序问题有以下几个:
1,控制语句不合理,可能会重复判断 应该像:if() ;else if();..... else();
2,if语句里面的条件有问题 应该像这样:if((mon=2)&&(day=28)&&(year%4==0))
3,判断闰年的条件有问题,四年一闰,百年不闰,四百年闰。
//4,这个只能判断每个月的最后一天 //这里是我错了 可以判断任何一天。
川一八
2013-03-22 · 超过13用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:36.2万
展开全部
不对的地方很多啊。上来就day自加,明显不对;当day==31时,mon+1可以,day应该=0;
而且闰年的判断是能被400整除同时能被4整除儿不能被100整除!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hongyu16888
2013-03-22 · TA获得超过1041个赞
知道小有建树答主
回答量:2189
采纳率:62%
帮助的人:606万
展开全部
先判断 再DAY=DAY+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
同城跑腿小二
2013-03-22 · TA获得超过3205个赞
知道小有建树答主
回答量:561
采纳率:0%
帮助的人:234万
展开全部
好多年没看这东西了,现在看到就头痛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草莓Q蛋糕
2013-03-23
知道答主
回答量:17
采纳率:0%
帮助的人:10.8万
展开全部
我也是。。。我跟你写的差不多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式