问题及代码:
/*
*copyright (c) 2014,烟台大学计算机学院
*all rights reserved.
*文 件 名 : 当年第几天.cpp
*作 者 :白云飞
*完成日期 :2014年11月8号
*版 本 号 :v1.0
*
*问题描述 :定义一个函数,其参数为年,月,日的值,返回这一天为该年的到底几天?
*输入描述 :三个正整数,分别代表年,月,日的值
*程序输出 : 一个正整数的值,代表这一天为该年的到底几天?
*/
#include<iostream>
using namespace std;
int days(int y, int m, int d);//声明自定义函数
int main()
{
int year, month, day;//声明变量
cout<<"输入年 月 日"<<endl;
cin>>year>>month>>day;
cout<<"这是该年的第"<<days(year, month, day)<<"天"<<endl;
return 0;
}
int days(int y, int m, int d)//调用自定义函数
{
int a;
if ((y%4==0&&y%100!=0)||y%400==0)//判断语句
{
switch(m)//闰年的情况
{
case 1:
a=0;
break;
case 2:
a=1;
break;
case 3:
a=0;
break;
case 4:
a=1;
break;
case 5:
a=1;
break;
case 6:
a=2;
break;
case 7:
a=2;
break;
case 8:
a=3;
break;
case 9:
a=4;
break;
case 10:
a=4;
break;
case 11:
a=5;
break;
case 12:
a=5 ;
break;
}
}
else
{
switch(m)//非闰年的情况
{
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;
}
}
d=(m-1)*30+d+a;
return d;//返回d的值
}
运算结果:
学习心得:
声明自定义函数,用if语句判断是否为闰年,再根据判断语句进行具体运算,没想到更好的方法,所以就挨个计算出a的值。