用C++编写程序输入某年某月某日判断这一天是这一年的第几天,我输入二月二日,得出这是该年第二天,求改错
#include<stdio.h>voidmain(){printf("请输入年月日\n");inta,b,c,d;scanf("%d%d%d",&a,&b,&c);sw...
#include <stdio.h>
void main()
{
printf("请输入年月日\n");
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
switch(b)
{
case 12:d=c+31;
case 11:d=c+30;
case 10:d=c+31;
case 9:d=c+30;
case 8:d=c+31;
case 7:d=c+31;
case 6:d=c+30;
case 5:d=c+31;
case 4:d=c+30;
case 3:d=c+31;
case 2:if(a%4==0&&a%100!=0||a%400==0)
d=c+29;
else
d=c+28;
case 1:d=c;
}
printf("为%d年的第%d天",a,d);
} 展开
void main()
{
printf("请输入年月日\n");
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
switch(b)
{
case 12:d=c+31;
case 11:d=c+30;
case 10:d=c+31;
case 9:d=c+30;
case 8:d=c+31;
case 7:d=c+31;
case 6:d=c+30;
case 5:d=c+31;
case 4:d=c+30;
case 3:d=c+31;
case 2:if(a%4==0&&a%100!=0||a%400==0)
d=c+29;
else
d=c+28;
case 1:d=c;
}
printf("为%d年的第%d天",a,d);
} 展开
展开全部
case 2:应该是d=d+c+31 ;即,应该加上月的天数才对!
case 1:d=d+c;
每一个都应该是d=d+XXXX
而且d的初值应该是0
case 1:d=d+c;
每一个都应该是d=d+XXXX
而且d的初值应该是0
追答
这样!
#include
int main()
{
printf("请输入年月日\n");
int a,b,c,d=0; //d给初值0
scanf("%d%d%d",&a,&b,&c);
switch(b)
{
case 12:d +=30; //加上上月的天数
case 11:d +=31;
case 10:d +=30;
case 9:d +=31;
case 8:d +=31;
case 7:d +=30;
case 6:d +=31;
case 5:d +=30;
case 4:d +=31;
case 3:
if( ( a%4==0&&a%100!=0) ||(a%400==0) )
d+=29;
else
d+=28;
case 2:d +=31;
case 1:d+=c;
}
printf("为%d年的第%d天\n",a,d);
return 0;
}
2012-10-29
展开全部
case后掉了break,输入x,x,2,2后一直执行到case1:d=c,d=2不是第二天才怪了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-29
展开全部
损印锈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-10-29
展开全部
挖碰记
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询