问题标题: 1325

0
0
已解决
张鑫宇
张鑫宇
中级守护
中级守护
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b;
    if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
    cout<<"31";
    if(b==4||b==6||b==9||b==11)
    cout<<"30";
    if(b==2)
    cout<<"28";
    if(b<1||b>12)
    cout<<"Error!";
    return 0;
}

 


1
已采纳
樊澄宇
樊澄宇
新手光能
新手光能
if(b==2)
    cout<<"28";

改成

if(b==2 && (a%4!=0 || (a%100==0 && a%400!=0)))
    cout<<"28";
else
    cout<<"29";
樊澄宇在2018-01-24 15:13:32追加了内容

应该改成

if(b==2 && (a%4!=0 || (a%100==0 && a%400!=0)))
    cout<<"28";
else if (b==2)
    cout<<"29";

 

0
杨陈卓
杨陈卓
新手天翼
新手天翼
    if(b>=1&&b<=12)
    {
        if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
            cout<<31;
        if(b!=1&&b!=3&&b!=5&&b!=7&&b!=8&&b!=10&&b!=12&&b!=2)
            cout<<30;
        if(b==2)
        {
            if((a%4==0&&a%100!=0)||a%400==0)
                cout<<29;
            else cout<<28;
        }
    }
    else cout<<"Error!"<<endl;
    if(a==0) cout<<"Error"<<endl;

 

0
0
朱宗晔
朱宗晔
初级光能
初级光能

核心部分 

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;
       }
   }
   cout<<day<<endl;

 

0
杨陈卓
杨陈卓
新手天翼
新手天翼

1.还少一个闰年没有判断,如果a能被4整除并且不能被100整除或a能被400整除的情况下,2月是有29天的。

2.把

if(b<1||b>12)

    cout<<"Error!";

改成

if(b<1||b>12||a==0)
cout<<"Error!";

 

0
樊澄宇
樊澄宇
新手光能
新手光能
if(b==2)
    cout<<"28";

改成

if(b==2 && (a%4!=0 || (a%100==0 && a%400!=0)))
    cout<<"28";
else if (b==2)
    cout<<"29";

 

0
臧启亚
臧启亚
初级光能
初级光能

核心代码:

 {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        day = 31;
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        day = 30;
        break;
    case 2:
        if(leapYear(year))
            day = 29;
        else
            day = 28;
        break;
    default:
        break;
    }
    if (month>12 or month<1) cout<<"Error!"<<endl;
    else     cout<<day<<endl;
我要回答