定义一个结构体变量(包括年、月、日),编写程序,要求输入年、月、日,程序能判断该年是否为闰年。

​
//定义一个结构体变量(包括年、月、日),编写程序,要求输入年、月、日,程序能计算并输出该日在本年中是第几天。注意闰年问题。  
//基本思想:把当月的天数与当月之前的所有天数加起来,注意闰年与非闰年的区别
#include<iostream>  
using namespace std;  
struct Date  
{  
    int year;  
    int month;  
    int date;  
};
//全都写主函数里了,读者可以自行另写函数来模块化管理。
int main()  
{  
    struct Date A;  
    int day;  
    cout << "请输入年份" << endl;   //提示输入
    cin >> A.year;  
    cout << "请输入月份" << endl;   
    cin >> A.month;  
    cout << "请输入号数" << endl;   
    cin >> A.date;  
    cout << endl;  

    //闰年判断思想:该年可以整除4并且不能被100整除,或者该年可以整除4又可以被400整除

    if(A.year % 4 == 0 && A.year % 100 != 0 || A.year % 4 == 0 && A.year % 400 == 0) //是闰年 2月有29天   
    {  
        cout << "此时为该年中的第";  //与下面的内容信息相接
        switch(A.month)  
        {  
            case 1:  
                day = A.date;  //一月之前没有月份,故直接是号数,下同
            cout << day; break;  
                case 2:  
                    day = 31 + 0 + A.date;  //一月大有31天
             cout << day; break;  
                    case 3:  
                        day = 31 + 29 + A.date;  
             cout << day; break;  
                        case 4:  
                            day = 62 + 29 + A.date;  
             cout << day; break;  
                            case 5:  
                                day = 63 + 58 + A.date;  
              cout << day; break;  
                                case 6:  
                                    day = 94 + 58 + A.date;  
              cout << day; break;  
                                    case 7:  
                                        day = 152 + 30 + A.date;  
              cout << day; break;  
                                        case 8:  
                                            day = 182 + 31 + A.date;  
              cout << day; break;  
                                            case 9:  
                                                day = 213 + 31 + A.date;  
              cout << day; break;  
                                                case 10:  
                                                    day = 213 + 61 + A.date;  
              cout << day; break;  
                                                    case 11:  
                                                        day = 274 + 31 + A.date;  
              cout << day; break;  
                                                        case 12:  
                                                            day = 305 + 30 + A.date;  
               cout << day; break;  
        }  
           cout << "天" << endl;  
    }  

    else   //2月只有28天   
    {  
        cout << "该天为一年中的第";  
            switch(A.month)  
        {  
            case 1:  
                day = A.date;  
            cout << day; break;  
                case 2:  
                    day = 31 + 0 + A.date;  
             cout << day; break;  
                    case 3:  
                        day = 31 + 28 + A.date;  
             cout << day; break;  
                        case 4:  
                            day = 62 + 28 + A.date;  
             cout << day; break;  
                            case 5:  
                                day = 62 + 58 + A.date;  
              cout << day; break;  
                                case 6:  
                                    day = 93 + 58 + A.date;  
              cout << day; break;  
                                    case 7:  
                                        day = 151 + 30 + A.date;  
              cout << day; break;  
                                        case 8:  
                                            day = 181 + 31 + A.date;  
              cout << day; break;  
                                            case 9:  
                                                day = 212 + 31 + A.date;  
              cout << day; break;  
                                                case 10:  
                                                    day = 212 + 61 + A.date;  
              cout << day; break;  
                                                    case 11:  
                                                        day = 273 + 31 + A.date;  
              cout << day; break;  
                                                        case 12:  
                                                            day = 304 + 30 + A.date;  
               cout << day; break;  
        }  
            cout << "天" << endl;  
            system("pause");  
            return 0;  
}  
}  

​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值