您的位置:首页 > 其它

编写程序,要求输入年月日,输出该日是本年中的第几天

2015-10-02 21:09 756 查看
定义一个结构体变量(包括年、月、日),编写程序,要求输入年、月、日,程序能计算并输出该日在本年中是第几天。注意闰年问题。

#include "stdafx.h"

#include<iostream>

using namespace std;

struct NYR //定义结构体变量NYR

{

int nian;

int yue;

int ri;

};

int run_nian(NYR n) //此函数计算是否为闰年

{

if((n.nian%4==0&&n.nian%100!=0)||(n.nian%400==0))

return 1;

else

return 0;

}

int check(NYR n) //此函数判断输入的数据是否正确

{

if(n.nian<1)

{

cout<<"请输入正确的年份!"<<endl;

return -1;

}

if(n.yue<1||n.yue>12)

{

cout<<"请输入正确的月份!"<<endl;

return -2;

}

switch(n.yue)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

if(n.ri>31||n.ri<1)

{

cout<<"请输入正确的日期!"<<endl;

return -3;

}

break; //break不可少

case 4:

case 6:

case 9:

case 11:

if(n.ri>30||n.ri<1)

{

cout<<"请输入正确的日期!"<<endl;

return -3;

}

break;

case 2:

if(run_nian(n)==1&&(n.nian<1||n.nian>29))

{

cout<<"请输入正确的日期!"<<endl;

return -3;

}

break;

if(run_nian(n)==0&&(n.nian<1||n.nian>28))

{

cout<<"请输入正确的日期!"<<endl;

return -3;

}

break;

}

return 0;

}

int jisuan(NYR n)

{

int result=0;

switch(n.yue)

{

case 12:result+=30;

case 11:result+=31;

case 10:result+=30;

case 9:result+=31;

case 8:result+=31;

case 7:result+=30;

case 6:result+=31;

case 5:result+=30;

case 4:result+=31;

case 3:

if(run_nian(n)==1)

{

result+=29;

}

if(run_nian(n)==0)

{

result+=28;

}

case 2:result+=31;

}

return result+n.ri; //在执行case语句时,根据switch表达式的值找到与之匹配的case子句,就从此case子句开始执行下去,不再进行判断

}

int _tmain(int argc, _TCHAR* argv[])

{

NYR nyr;

cin>>nyr.nian;

cin>>nyr.yue;

cin>>nyr.ri;

run_nian(nyr);

check(nyr);

int tian=jisuan(nyr);

cout<<tian<<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: