问题标题: 1325 某年某月的某一天

0
0

1
已采纳
朱宗晔
朱宗晔
初级光能
初级光能

 核心部分

   if(month<1||month>12){
    cout<<"Error!"<<endl;
    return 0;
   }
   if(year%400==0||year%100!=0&&year%4==0)
   {
       switch(month)
       {
            case 2: day=29;break;
            case 4: day=30;break;
            case 6: day=30;break;
            case 9: day=30;break;
            case 11: day=30;break;
            default: day=31;break;
       }
   }
   else
   {
       switch(month){
            case 2: day=28;break;
            case 4: day=30;break;
            case 6: day=30;break;
            case 9: day=30;break;
            case 11: day=30;break;
            default: day=31;break;
       }
   }

 

1
张睿杰
张睿杰
初级天翼
初级天翼
if (n>=0&&y>0&&y<=12)
    {
    if (y==1) cout<<31<<endl;
    if (y==2)
    {
        if (n%100!=0&&n%4==0||n%400==0)
    {
       printf("29");
    } 
    else
    {
        printf("28");
    }
    }

剩下的就时判断月数

if (y==3) cout<<31<<endl;
    if (y==4) cout<<30<<endl;
    if (y==5) cout<<31<<endl;
    if (y==6) cout<<30<<endl;
    if (y==7) cout<<31<<endl;
    if (y==8) cout<<31<<endl;
    if (y==9) cout<<30<<endl;
    if (y==10) cout<<31<<endl;
    if (y==11) cout<<30<<endl;
    if (y==12) cout<<31<<endl;
    }
    else cout<<"Error!"<<endl;

 

0
栾峻岩
栾峻岩
初级天翼
初级天翼

用switch更好一些。

 

问题:1、如果a<1 怎么办?请在第20行哪里的判断中假如判断a<1(两个判断之间的用或,因为只要满足其中一个条件就可以算错。)

2、最好缩进可以改一下~

 

3、第七行的判断n被4整除并且n被100整除,应该为n被4整除并且n被100除有余数。因为这样子2100年也满足你原来写的条件,但2100年不是闰年。

 

 

0
0
我要回答