问题描述:
(1)定义一个结构体变量(包括年、月、日),要求输入年、月、日,计算输出该日是该年的第几天。
(2)输入两个人的生日,求出他们相差多少天。
代码:
#include <iostream> using namespace std; int mydate(int y,int m,int d) //自定义函数days,其中有三个整型变量。 { int a=0,b=0; //声明2个变量a,b为整型并都赋予初值为0。 switch (m) //switch语句执行,变量为月份。 { case 1: a=0; break; case 2: a=1; break; case 3: a=-1; break; case 4: a=0; break; case 5: a=0; break; case 6: a=1; break; case 7: a=1; break; case 8: a=2; break; case 9: a=3; break; case 10: a=3; break; case 11: a=4; break; case 12: a=4; break; } if (m>2&&((y%4==0&&y%100!=0)||(y%400==0))) //当出现比2月大的月份考虑闰年问题。 b=1; else b=0; return (d=(30*(m-1)+d+a+b)); //返回求的天数。 } struct Date { int year; int month; int day; }; int main() { Date date; cout<<"input year,month,day:"; while (cin>>date.year>>date.month>>date.day) { int days; days=mydate(date.year,date.month,date.day); cout<<date.month<<"月"<<date.day<<"日是"<<date.year<<"年的第"<<days<<"天."<<endl; } return 0; }
运行结果: