循环输入日期(年月日),求当前日期为这一年的第几天,且至少循环运行三次

循环输入日期(年月日),求出当前日期是这一年的第几天。
要求:1.年月日必须用结构体表示;
2.计算天数最好用swith语句;注意判断是否为闰年;
3.至少循环运行3次,输入3个不同日期(必须得有闰年),得出不同结果。
要求1.2都弄出来了,3弄不出来,哪位帮我看看怎么弄?
我写的代码

img

img

img

img

加循环控制就可以了。
第一种方法:执行3次,用个for循环控制一下就可以了,代码如下:


int main()
{
    for (int x = 0; x < 3; x++)
    {
        //把原来的代码放在这里
    }
    return 0;
}

第二种方法:根据输入来判断是否继续,代码如下:

int main()
{
    int op;
    while (1)
    {
        //原来的代码放在这里

        //新增代码,在这里根据用户的输入来判断是否继续输入年月日进行计算
        cout << "是否继续(输入1继续)? "; 
        cin >> op;
        if (op != 1)
            break;
    }
    return 0;
}

如有帮助,望采纳,谢谢。


#include <iostream>
#define N 3
using namespace std;


struct Date
{
    int year;
    int month;
    int day;
    int days_count;
};

int is_leap(int year)
{
    if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
    {
        return 29;
    }
    return 28;
}


int count_days(int year, int month, int day)
{
    int count;
    switch(month-1)
    {
        case 0: count = day; break;
        case 1: count = day + 31; break;
        case 2: count = day + 31 + is_leap(year); break;
        case 3: count = day + 31 * 2 + is_leap(year); break;
        case 4: count = day + 31 * 2 + 30 + is_leap(year); break; 
        case 5: count = day + 31 * 3 + 30 + is_leap(year); break;
        case 6: count = day + 31 * 3 + 30 * 2 + is_leap(year); break;
        case 7: count = day + 31 * 4 + 30 * 2 + is_leap(year); break;
        case 8: count = day + 31 * 5 + 30 * 2 + is_leap(year); break;
        case 9: count = day + 31 * 5 + 30 * 3 + is_leap(year); break;
        case 10: count = day + 31 * 6 + 30 * 3 + is_leap(year); break;
        case 11: count = day + 31 * 6 + 30 * 4 + is_leap(year); break;
    }
//    cout<<count;
    return count;
}

void input(struct Date date[])
{
    int i;
    cout<<"请输入日期:年 月 日:"<<endl;
    for(i=0; i<N; i++)
    {
        cin>>date[i].year>>date[i].month>>date[i].day;
        date[i].days_count = count_days(date[i].year, date[i].month, date[i].day);
        cout<<date[i].year<<"-"<<date[i].month<<"-"<<date[i].day<<"是"<<date[i].year<<"年的第"<<date[i].days_count<<"天"<<endl;
    }
}

//void print(struct Date date[])
//{
//    int i;
//    for(i=0; i<N; i++)
//    {
//        cout<<date[i].year<<"-"<<date[i].month<<"-"<<date[i].day<<"是"<<date[i].year<<"年的第"<<date[i].days_count<<"天"<<endl;
//    }
//}

int main()
{    
    struct Date date[N], *p = date;
    input(p);
//    print(p);
}


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632