题目解读:这道题就是给我们日期,让我们通过程序计算出该日期是这一年的第几天。
解题思路及代码:
首先,我们要定义用于存储年,月,日的变量。在这里有两个方法,第一种如题目名,用定义结构体的方法来存储,第二种适用于没有掌握结构体的同学们,通过定义三个变量来存储。此外,我们还要定义一个数组来存储十二个月。
//定义方法一 struct date//定义一个结构体取名为date { int year ; int month ; int day ; };//注意这里一定要加上分号 date d;//定义日期 //定义方法二 int year,month,day ;//直接定义年月日 //定义月份数组 int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//为了方便,定义13个数组
输入
cin>>d.year>>d.month>>d.day ;
然后是判断输入的年份是否是闰年:如果是闰年,那么将月份数组中的2月改为29天
if(d.year%4==0&&d.year%400==0) { mon[2]=29 ; }
接下来,定义一个储存结果的变量,从1月开始加到输入月份的前一个月,再加上输入的日就好了
int sum=0 ; for(int i=1;i<=d.month-1;i++) { sum+=m[i] ; } sum+=d.day ;
最后就是输出啦~
cout<<sum;
完整源代码如下:
#include <bits/stdc++.h> using namespace std; struct date { int year,month,day ; }; int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int main() { int sum=0; date d ; cin>>d.year>>d.month>>d.day ; if(d.year%4==0||d.year%400==0) { m[2]=29 ; } for(int i=1;i<=d.month-1;i++) { sum+=m[i] ; } sum+=d.day ; cout<<sum; return 0; }
本次博客就到这里,bye~
0.0分
1 人评分