解题思路:
首先定义一个时间结构体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; }
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:737 |
母牛的故事 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:699 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1015 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:768 |
【亲和数】 (C语言代码)浏览:628 |
数字游戏 (C++代码)浏览:1240 |
1050题解(结构体数组与结构体指针的使用)浏览:1216 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:742 |
陶陶摘苹果2 (C语言代码)浏览:650 |