#17994: 請問哪裡寫錯了


611009@stu.cchs.chc.edu.tw (scouser)

學校 : 不指定學校
編號 : 96195
來源 : [111.83.174.230]
最後登入時間 :
2019-06-08 15:38:45
a263. 日期差幾天 -- 板橋高中練習題 | From: [111.82.125.143] | 發表日期 : 2019-06-08 11:16

 

#include<iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;

int main()
{
int y1,y2,m1,m2,d1,d2;
int s[12];
s[1]=0,s[2]=31,s[3]=59,s[4]=90,s[5]=120,s[6]=151,s[7]=181;
s[8]=212,s[9]=243,s[10]=273,s[11]=304,s[12]=334;
while(cin>>y1)
{
cin>>m1>>d1>>y2>>m2>>d2;
if(y1>y2)
{ y1^=y2^=y1^=y2;
m1^=m2^=m1^=m2;
d1^=d2^=d1^=d2;
}
if(y1==y2&&m1>m2)
{ m1^=m2^=m1^=m2;
d1^=d2^=d1^=d2;
}
if(y1==y2&&m1==m2)
{
if(d1>d2)
d1^=d2^=d1^=d2;
}
int st,en,leap=0;
(m1<3)?st=y1:st=y1+1;
(m2<3)?en=y2-1:en=y2;
for(int n=st;n<=en;n++)
{
if(n%4==0)
{
if(n%100!=0)
leap++;
else if(n%400==0)
leap++;
}
}
cout<<y2*365+s[m2]+d2-(y1*365+s[m1]+d1)+leap<<endl;
}
return 0;
}

WA(line2)

的答案為: 538654
正確答案為: 538320
 
ZeroJudge Forum