雁过留声 发表于 2025-1-24 13:18:05

C++:定义一个结构体变量(包罗年、月、日),编写程序,要求输入年月日,

输出样例如图所示:
https://i-blog.csdnimg.cn/direct/0539d07b3025487599182cc49cfe709e.png
代码如下:
#include<iostream>
using namespace std;

struct date
{
    int year, month, day;
};

int main()
{
    int year, month, day;
    int sum = 0;
    cout << "请分别输入年月日:";
    cin >> year >> month >> day;
    cout << endl;
    struct date d;
    d.year = year;
    d.month = month;
    d.day = day;
    if (d.month == 1)
      cout << d.day;
    else
    {
      for (int i = 1; i < d.month; i++)
      {
            switch (i)
            {
            case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                sum += 31;
                break;

            case 4:case 6:case 9:case 11:
                sum += 30;
                break;

            case 2:sum += 28;
            }
      }
      sum += d.day;
      if ((d.year % 4 == 0 && d.year % 100 != 0) || (d.year % 400 == 0))
      {
            if (d.month > 2) {
                sum += 1;
            }
      }
      cout << "这一天是本年的第" << sum << "天" << endl;
    }
    return 0;
}  解释如下:
   

[*]定义了一个名为date的结构体,其中包含三个整型成员变量year(年)、month(月)和day(日),用于存储日期信息。
[*]在主函数中定义了三个整型变量year、month和day,用于接收用户输入的年、月、日信息。整型变量sum并初始化为 0,用于累加该日期是该年的第几天。
[*]如果输入的月份是 1 月,直接输出该月的天数(即d.day)。
[*]若输入的月份不是 1 月,利用for循环遍历从 1 到d.month - 1的所有月份。
[*]在switch语句中,根据不同的月份,将对应月份的天数累加到sum中:
                1、3、5、7、8、10、12 月有 31 天。
                4、6、9、11 月有 30 天。
                2 月默认按 28 天计算。
其中对于闰年:
        判断输入的年份是否为闰年,闰年的判断条件是:能被 4 整除但不能被 100 整除,或者能被         400 整除。
        若为闰年且输入的月份大于 2 月,说明 2 月有 29 天,将sum加 1。


[*]循环竣事后,将输入的日期d.day累加到sum中。
觉得有资助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交换
友友们一起加油叭QAQ

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: C++:定义一个结构体变量(包罗年、月、日),编写程序,要求输入年月日,