文章
3
粉丝
185
获赞
1
访问
30.0k
1. 1051 问题:写的太长了!,可以在判断完是否为闰年以后,就把保存月份天数的数组的2月给改了,这样后面month直接使用也没关系
//判断是否合理
//计算机是某一年第几天
int days[] = {29,31,28,31,30,31,30,31,31,30,31,30,31};
int check(int year,int month,int day){
//-1 不合法
//0 闰年
//1 平年
int tag = 1,aday;
//正整数,大于零
if(year <= 0)
return -1;
if(month > 12 || month < 1){
return -1;
}
//判断闰年
if(year % 400 == 0 ||(year % 4 == 0) && (year % 100 != 0)){
tag = 0;
}
//得出aday
if(month == 2){
aday = days[tag*month];
}
else{
aday = days[month];
}
if(day > aday || day < 1){
return -1;
}
return tag;
}
int main(){
int year,month,day;
while(scanf("%d%d%d",&year,&month,&day) != EOF){
int tag = check(year,month,day);//判断
//cout << "tag:"<<tag <<endl;
if(tag == -1){
printf("Input error!\n");
}
else{
//计算天数
int allday = 0;
int i;
for(i = 1;i < month;i++){
if(i == 2){
allday += days[tag*i];
}
else{
...
登录后发布评论
暂无评论,来抢沙发