爱编程的小笨孩


私信TA

用户名:2119394720

访问量:24251

签 名:

我在成长,总有一天我会足够优秀。

等  级
排  名 143
经  验 7383
参赛次数 6
文章发表 44
年  龄 0
在职情况 学生
学  校 黄河科技学院
专  业 软件工程

  自我简介:

一只想要当凤凰的鸡

TA的其他文章

解题思路:

首先定义一个时间结构体Date,其成员包括year,month,day分别表示年,月,日。然后在main函数中定义结构体变量,再定义一个sum用来保存输入日期是该年的第几天,为了后续方便计算,再定义一个数组mon用来保存平年的12个月每个月的天数。接着用cin输入年月日这些信息。当数据输入完毕之后,本程序的主要步骤便开始了。


第一步:判断是否是闰年,如果是,则将二月份的天数改为29天,如果不是,则保持不变。

判断是否为闰年的方法:

①普通年能整除4且不能整除100的为闰年。

②世纪年能整除400的为闰年。


第二步:计算输入的日期是该年的第几天

这里笔者采用for循环来进行计算,先通过循环将输入月份的前几个月份的天数加入到sum中,然后循环结束后再将本月的号加入到sum中,最后输入结果。下面举个例子解释本步骤:

例如输入的日期为2000 12 31,则先通过循环将前11个月的天数加在一起,循环结束后在加上本月的号,即加上31,最后输出结果。



结构体相关知识点总结:


结构体定义:用户自己建立的由不同数据类型组成的组合型的数据结构称为结构体


结构体类型的一般形式:

struct     结构体名

{

    成员列表

};


结构体成员的引用:

结构体变量名.成员名

“.”是成员运算符,他在所有的运算符中优先级最高。
考代码:

#include<iostream>
using namespace std;
//定义日期结构体
struct Date
{
    int year;
    int month;
    int day;
};
int main()
{
    //定义结构体变量
    Date date;
    //定义sum保存天数
    int sum=0;
    //用数组保存平年12个月每个人月的天数
    int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    //输入日期年月日
    cin>>date.year;
    cin>>date.month;
    cin>>date.day;
    //判断是否是闰年
    if(date.year%4==0&&date.year%100!=0||date.year%400==0)
    {
        mon[1]=29;
    }
    //计算输入的日期是该年的第几天
    for(int i=0;i<date.month-1;i++)
    {
        sum+=mon[i];
    }
    sum+=date.day;
    cout<<sum;
    return 0;
}


 

0.0分

13 人评分

  评论区

#include<stdio.h>

struct Calender{
    int year;
    int month;
    int day;
};

int main()
{
    struct Calender cal;
    int ms[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int days=0;
    
    scanf("%d %d %d",&cal.year,&cal.month,&cal.day);
    
    if(cal.year%4==0)
    {
        ms[1]=29;
    }
    
    for(int i=cal.month-1;i>0;i--)
    {
        days+=ms[i-1];
    }
    days+=cal.day;
    
    printf("%d",days);
    
    return 0;
}
2024-03-07 16:15:52
  • «
  • 1
  • »