题目描述:
定义一个结构型变量(包括年、月、日),并从键盘上获取该变量的值,计算该日在本年中是第几天,输出到屏幕上,格式为:“X年X月X日是本年中的第X天。”(提示:注意闰年问题)。
#include<iostream>
using namespace std;
struct A{
int year;
int month;
int day;
}date;
int main(){
cin>>date.year>>date.month>>date.day;
int sum=0;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年每个月的天数
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年每个月的天数
if (date.year%4==0&&date.year%100!=0||date.year%400==0)//判断闰年
{
for (int i = 0; i < date.month-1; i++)
{
sum+=b[i];
}
}else
{
for (int i = 0; i < date.month-1; i++)
{
sum+=a[i];
}
}
sum+=date.day;
cout<<date.year<<"年"<<date.month<<"月"<<date.day<<"日是本年中的第"<<sum<<"天。"<<endl;
}
知识点:
1.结构类型(书P95)
struct定义了一个结构类型A,大括号后的date表示定义了一个A类型的变量date
访问成员时用“.” 例如date.year
2.数组(书P85)
定义+初始化方式:类型标识符 数组名[常量表达式]={以逗号隔开的初始化值}
访问元素时用“数组名[下标表达式]” 例如a[i]
注意下标表达式从0开始算 所以a[i]表示数组中第i+1个元素