30.输入年月日,判断它是该年的第多少天

(1)运用swicth语句

#include<iostream>
using namespace std;

int main()
{
    int y,m,d;
    int d1;
    int sum=0,sum1=0;
    cout<<"please input year,month,day: "<<endl;
    cin>>y>>m>>d;

    if(((y%4==0)&&(y%100!=0))||(y%400==0))
    {
        for(int i=1;i<m;i++)
        {
            switch(i)
            {
                case 12: d1=31;break;//注意,这里是赋值,而不是判断(不要写成“==”)
                case 11: d1=30;break;
                case 10: d1=31;break;
                case  9: d1=30;break;
                case  8: d1=31;break;
                case  7: d1=31;break;
                case  6: d1=30;break;
                case  5: d1=31;break;
                case  4: d1=30;break;
                case  3: d1=31;break;
                case  2: d1=29;break;
                case  1: d1=31;break;
                default: break;
            }
            sum1+=d1;
        }
        sum=sum1+d;
    }else
    {
        for(int j=1;j<m;j++)
        {
            switch(j)
            {
                case 12: d1=31;break;
                case 11: d1=30;break;
                case 10: d1=31;break;
                case  9: d1=30;break;
                case  8: d1=31;break;
                case  7: d1=31;break;
                case  6: d1=30;break;
                case  5: d1=31;break;
                case  4: d1=30;break;
                case  3: d1=31;break;
                case  2: d1=28;break;
                case  1: d1=31;break;
                default: break;
            }
            sum1+=d1;
        }
        sum=sum1+d;
    }
    cout<<"this is the "<<sum<<" day of the "<<y<<endl;
    return 0;
}

(2)运用数组

#include<iostream>
using namespace std;

int main()
{
    int y,m,d;
    int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int d1;
    int sum=0,sum1=0;
    cout<<"please input year,month,day: "<<endl;
    cin>>y>>m>>d;

    if((y%4==0)&&(y%100!=0)||(y%400==0))
    {
        a[2]+=1;
        for(int i=1;i<m;i++)
        {
            sum1+=a[i];
        }
        sum=sum1+d;
    }else
    {
        for(int j=1;j<m;j++)
        {
            sum1+=a[j];
        }
        sum=sum1+d;
    }

    cout<<"this is the "<<sum<<" day of the "<<y<<endl;
    return 0;
}
原文地址:https://www.cnblogs.com/jixiaowu/p/3895670.html