请大家帮我看一下这个c语言程序
本题要求输入一个日期,输出第二天日期,用"月/日/年"格式。本人程序无法答对,请大家帮忙修改,程序如下:#include<stdio.h>intpr(intn){if(n...
本题要求输入一个日期,输出第二天日期,用"月/日/年"格式。本人程序无法答对,请大家帮忙修改,程序如下:
#include<stdio.h>
int pr(int n)
{
if(n%4==0&&(n%100!=0||n%400==0))
return 1;
else return 0;
}
int main()
{
int n,y,r,n1,y1,r1;
scanf("%d/%d/%d",&y,&r,&n);
if(pr(n)==1){if(y==2&&r==29){y1=3;r1=1;n1=n;}
else{y1=y;r1=r+1;n1=n;}}
if(pr(n)==0){if(y==2&&r==28){y1=3;r1=1;n1=n;}
else{y1=y;r1=r+1;n1=n;}}
if(y==1){if(r==31){y1=2;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==3){if(r==31){y1=4;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==4){if(r==30){y1=5;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==5){if(r==31){y1=6;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==6){if(r==30){y1=7;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==7){if(r==31){y1=8;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==8){if(r==31){y1=9;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==9){if(r==30){y1=10;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==10){if(r==31){y1=11;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==11){if(r==30){y1=12;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==12){if(r==31){y1=1;r1=1;n1=n+1;}else{y1=y;r1=r+1;n1=n;}}
printf("%d/%d/%d",y1,r1,n1);
}
能给出源代码更好 展开
#include<stdio.h>
int pr(int n)
{
if(n%4==0&&(n%100!=0||n%400==0))
return 1;
else return 0;
}
int main()
{
int n,y,r,n1,y1,r1;
scanf("%d/%d/%d",&y,&r,&n);
if(pr(n)==1){if(y==2&&r==29){y1=3;r1=1;n1=n;}
else{y1=y;r1=r+1;n1=n;}}
if(pr(n)==0){if(y==2&&r==28){y1=3;r1=1;n1=n;}
else{y1=y;r1=r+1;n1=n;}}
if(y==1){if(r==31){y1=2;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==3){if(r==31){y1=4;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==4){if(r==30){y1=5;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==5){if(r==31){y1=6;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==6){if(r==30){y1=7;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==7){if(r==31){y1=8;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==8){if(r==31){y1=9;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==9){if(r==30){y1=10;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==10){if(r==31){y1=11;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==11){if(r==30){y1=12;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==12){if(r==31){y1=1;r1=1;n1=n+1;}else{y1=y;r1=r+1;n1=n;}}
printf("%d/%d/%d",y1,r1,n1);
}
能给出源代码更好 展开
2个回答
展开全部
#include <stdio.h>
int judge(int y,int m,int d)
{
int flag; /*用来返回判断结果,flag=0表示输入的日期不对,flag=1表示输入的日期正确*/
if(m<1 || m >12) /*月份当然只能是1-12*/
return 0;
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d<1 || d >31) /*大月有31天*/
flag=0;
else flag=1;
break;
case 4:
case 6:
case 9:
case 11:
if(d<1 || d >30) /*小月只有30天*/
flag=0;
else flag=1;
break;
case 2: /*2月平年28天,闰年29天*/
if(y%4==0&&y%100!=0||y%400==0) /*能被4整除并且不能被100整除或者能被400整除就是闰年*/
{
if(d<1 || d>29) /*闰年29天*/
flag=0;
else
flag=1;}
else
{if(d<1||d>28) /*平年28天*/
flag=0;
else
flag=1;}
break;
}
return flag;
}
main()
{
int y,m,d;
scanf("%d %d %d",&y,&m,&d);
if(judge(y,m,d))
{
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d<31) /*没到月底,日加一天*/
{d=d+1;}
else if(m<12) /*到了月底,小于12月只改月和日,比如2007年10月31日->2007年11月1日*/
{m=m+1;d=1;}
else /*12月底,改年,月和日,比如2007年12月31日->2008年1月1日*/
{y++;m=1;d=1;}
break;
case 4:
case 6:
case 9:
case 11:
if(d<30) /*没到月底,日加一天*/
d++;
else /*到了月底,改月和日*/
{d=1;m++;}
break;
case 2:
if(y%4==0&&y%100!=0||y%400==0)
{
/*闰年29天*/
if(d<29) /*没到月底,日加一天*/
d++;
else /*到了月底,改月和日*/
{d=1;m++;}
}
else
/*平年28天,不是29天*/
{if(d<28)/*没到月底,日加一天*/
d++;
else /*到了月底,改月和日*/
{d=1;m++;}
break; }}
printf("next day is %d %d %d\n",y,m,d);}
else
printf("not valid date");
getch();
}
int judge(int y,int m,int d)
{
int flag; /*用来返回判断结果,flag=0表示输入的日期不对,flag=1表示输入的日期正确*/
if(m<1 || m >12) /*月份当然只能是1-12*/
return 0;
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d<1 || d >31) /*大月有31天*/
flag=0;
else flag=1;
break;
case 4:
case 6:
case 9:
case 11:
if(d<1 || d >30) /*小月只有30天*/
flag=0;
else flag=1;
break;
case 2: /*2月平年28天,闰年29天*/
if(y%4==0&&y%100!=0||y%400==0) /*能被4整除并且不能被100整除或者能被400整除就是闰年*/
{
if(d<1 || d>29) /*闰年29天*/
flag=0;
else
flag=1;}
else
{if(d<1||d>28) /*平年28天*/
flag=0;
else
flag=1;}
break;
}
return flag;
}
main()
{
int y,m,d;
scanf("%d %d %d",&y,&m,&d);
if(judge(y,m,d))
{
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d<31) /*没到月底,日加一天*/
{d=d+1;}
else if(m<12) /*到了月底,小于12月只改月和日,比如2007年10月31日->2007年11月1日*/
{m=m+1;d=1;}
else /*12月底,改年,月和日,比如2007年12月31日->2008年1月1日*/
{y++;m=1;d=1;}
break;
case 4:
case 6:
case 9:
case 11:
if(d<30) /*没到月底,日加一天*/
d++;
else /*到了月底,改月和日*/
{d=1;m++;}
break;
case 2:
if(y%4==0&&y%100!=0||y%400==0)
{
/*闰年29天*/
if(d<29) /*没到月底,日加一天*/
d++;
else /*到了月底,改月和日*/
{d=1;m++;}
}
else
/*平年28天,不是29天*/
{if(d<28)/*没到月底,日加一天*/
d++;
else /*到了月底,改月和日*/
{d=1;m++;}
break; }}
printf("next day is %d %d %d\n",y,m,d);}
else
printf("not valid date");
getch();
}
展开全部
#include<stdio.h>
int pr(int n)
{
if((n%4==0&&n%100!=0)||n%400==0)
return 1;
else return 0;
}
int main()
{
int n,y,r,n1,y1,r1;
scanf("%d/%d/%d",&y,&r,&n);
if(pr(n)==1)
{
if(y==2)
{
if (r=29)
y1=3;r1=1;n1=n;
else
y1=2;r1=r+1;n1=n
}
if(y==1){if(r==31){y1=2;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==3){if(r==31){y1=4;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==4){if(r==30){y1=5;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==5){if(r==31){y1=6;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==6){if(r==30){y1=7;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==7){if(r==31){y1=8;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==8){if(r==31){y1=9;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==9){if(r==30){y1=10;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==10){if(r==31){y1=11;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==11){if(r==30){y1=12;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==12){if(r==31){y1=1;r1=1;n1=n+1;}else{y1=y;r1=r+1;n1=n;}}
if(pr(n)==0){if(y==2&&r==28){y1=3;r1=1;n1=n;}
else{y1=y;r1=r+1;n1=n;}}
if(y==1){if(r==31){y1=2;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==3){if(r==31){y1=4;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==4){if(r==30){y1=5;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==5){if(r==31){y1=6;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==6){if(r==30){y1=7;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==7){if(r==31){y1=8;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==8){if(r==31){y1=9;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==9){if(r==30){y1=10;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==10){if(r==31){y1=11;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==11){if(r==30){y1=12;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==12){if(r==31){y1=1;r1=1;n1=n+1;}else{y1=y;r1=r+1;n1=n;}}
printf("%d/%d/%d",y1,r1,n1);
}
这种方法太复杂了,其实用switch语句可能会更简单些,闰年的计算方式你算错了,还有就是想的不全面
int pr(int n)
{
if((n%4==0&&n%100!=0)||n%400==0)
return 1;
else return 0;
}
int main()
{
int n,y,r,n1,y1,r1;
scanf("%d/%d/%d",&y,&r,&n);
if(pr(n)==1)
{
if(y==2)
{
if (r=29)
y1=3;r1=1;n1=n;
else
y1=2;r1=r+1;n1=n
}
if(y==1){if(r==31){y1=2;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==3){if(r==31){y1=4;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==4){if(r==30){y1=5;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==5){if(r==31){y1=6;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==6){if(r==30){y1=7;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==7){if(r==31){y1=8;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==8){if(r==31){y1=9;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==9){if(r==30){y1=10;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==10){if(r==31){y1=11;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==11){if(r==30){y1=12;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==12){if(r==31){y1=1;r1=1;n1=n+1;}else{y1=y;r1=r+1;n1=n;}}
if(pr(n)==0){if(y==2&&r==28){y1=3;r1=1;n1=n;}
else{y1=y;r1=r+1;n1=n;}}
if(y==1){if(r==31){y1=2;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==3){if(r==31){y1=4;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==4){if(r==30){y1=5;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==5){if(r==31){y1=6;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==6){if(r==30){y1=7;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==7){if(r==31){y1=8;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==8){if(r==31){y1=9;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==9){if(r==30){y1=10;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==10){if(r==31){y1=11;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==11){if(r==30){y1=12;r1=1;n1=n;}else{y1=y;r1=r+1;n1=n;}}
if(y==12){if(r==31){y1=1;r1=1;n1=n+1;}else{y1=y;r1=r+1;n1=n;}}
printf("%d/%d/%d",y1,r1,n1);
}
这种方法太复杂了,其实用switch语句可能会更简单些,闰年的计算方式你算错了,还有就是想的不全面
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询