问题1:输入格式用“-”代替空格。
char a;
a='-';
输出就按照>>x>>a;就可以了。
问题二:思路不够简洁明了。
首先要根据年数判断平闰年,不能根据给的输入数据投机取巧。(用if)
之后将月份分类相加,1、3、5等月份分为一类可叠加,2根据平闰年单独加进去。
问题三:for 的运用不够熟练。
问题二中的情况,可以用for解决。
问题四:乱加花括号。
代码
#include <iostream>
using namespace std;
int main (){
char a;
int YYYY,MM,DD,time;
int b;
a='-';
cin>>YYYY>>a>>MM>>a>>DD;
if((YYYY%4==0&&YYYY%100!=0)||YYYY%400==0){ //闰年
for(int b=1;b<MM;b++){
if (b==1||b==3||b==5||b==7||b==8||b==10||b==12){
time+=31;
}else if(b==2){
time+=29;
}else{
time+=30;
}
}
}
else { //非闰年
for(int b=1;b<MM;b++){
if (b==1||b==3||b==5||b==7||b==8||b==10||b==12){
time+=31;
}else if(b==2){
time+=28;
}else{
time+=30;
}
}
}
time=time+DD;
cout<<time<<endl;
return 0;
}