
杭电acm2005
#include<stdio.h>intmain(){inti,a,b,c,date,sum;while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)...
#include<stdio.h>
int main()
{
int i,a,b,c,date,sum;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{ sum=0;
for(i=b-1;i>0;i--)
{
if((b<8&&b%2!=0) || (b>7&&b%2==0)) date=31;
if((b>3&&b%2==0) || (b>8&&b%2!=0)) date=30;
if(b=2)
if((a%4==0&&a%100!=0) or a%400==0) date=29;
else date=28;
sum=sum+date;
}
sum=sum+c;
printf("%d\n",sum);
}
return 0;
}
我知道我弄得复杂了,这个答案错误,我实在看不出哪里逻辑错了,求大神指教。 展开
int main()
{
int i,a,b,c,date,sum;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{ sum=0;
for(i=b-1;i>0;i--)
{
if((b<8&&b%2!=0) || (b>7&&b%2==0)) date=31;
if((b>3&&b%2==0) || (b>8&&b%2!=0)) date=30;
if(b=2)
if((a%4==0&&a%100!=0) or a%400==0) date=29;
else date=28;
sum=sum+date;
}
sum=sum+c;
printf("%d\n",sum);
}
return 0;
}
我知道我弄得复杂了,这个答案错误,我实在看不出哪里逻辑错了,求大神指教。 展开
2个回答
展开全部
1、你这代码不是贴过来的吧?or是什么鬼。or改成||,然后if(b=2)改成if(b==2)。
2、循环里面应该用i判断才对吧,而不是用b。
3、循环中的3个if是并列的,没加else,那么也就是第一个判断完了还要判断第二个,那么8月和10月时if((b>3&&b%2==0) || (b>8&&b%2!=0))判断是true,date=30;
2、循环里面应该用i判断才对吧,而不是用b。
3、循环中的3个if是并列的,没加else,那么也就是第一个判断完了还要判断第二个,那么8月和10月时if((b>3&&b%2==0) || (b>8&&b%2!=0))判断是true,date=30;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询