- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c 小程序,输入年月日,判断平年还是闰年并打印出该天是那年的第几天
#include iostream
using namespace std;
#define error 2
void jisuantianshu(int y,int m,int d);
niandexingzhi(int y,int m,int d);
yuefenfenxi(int m,int d);
panduanzifu(int y);
//主函数
int main()
{
int y,m,d;
cout*********程序功能:输入年、月、日,打印出该天是那年的第几天**********endl;
do{
cout\n\n请输入年月日,例如2008 8 6 endl;
cinymd;
if(panduanzifu(y)==2)
{ continue;}
if(niandexingzhi(y,m,d)==2)
{ continue;}
if(yuefenfenxi(m,d)==2) //调用月份分析函数
{ continue;}
//coutm=m;//测试用
jisuantianshu(y,m,d);
}while(1);
return 0;
}
//判断输入是否为整型,若为字符型,则报告错误
panduanzifu(int y)
{ int i;
i=cin.good ();
if(!i)
{
cout检测到非法字符,请重新输入!endl;
cin.clear ();
cin.sync ();//清空缓冲区
return error;}
else return 0;
}
//月份分析函数,分析所输入月份对应的天数是否超出范围,如输入4月,则不应出现大于30天的天数d值
yuefenfenxi(int m,int d)
{
switch(m)
{ case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12 :
{
if(d31 || d1 )
{
coutm月份天数输入有误,请重新输入!endl;
return error;
}
} break;
case 4:
case 6:
case 9:
case 11 :
if (d30 || d1 )
{ coutm月份天数输入有误,请重新输入!endl;
return error;}
break;
default : return 0;
}
}
//分析所输入的年份是平年还是闰年,并进一步分析所输入的二月份天数是否合法
niandexingzhi(int y,int m,int d)
{
if((y%400==0)||(y%4==0)(y%100!=0))
{ couty年是闰年!\n;
if( (m==2) (d29) )
{
cout二月天数输入有误,请重新输入!endl;
return error;}}
else
{ couty年是平年!\n;
if( (m==2) (d28) )
{
cout二月天数输入有误,请重新输入!endl;
return error;}}
}
//下面函数计算所输入的天数属于当年的第几天,首先判断所输入年是否为闰年
void jisuantianshu(int y,int m,int d)
{
if((y%400==0)||(y%4==0)(y%100!=0))// 核心函数,用if语句判断该年是否为闰年
{
switch(m)
{
case 1: coutm月d号是y年的第d天\n;break;
case 2: coutm月d号是y年的第31+d天\n;break;
case 3: coutm月d号是y年的第60+d天\n;break;
case 4: coutm月d号是y年的第91+d天\n;break;
case 5: coutm月d号是y年的第121+d天\n;break;
case 6: coutm月d号是y年的第152+d天\n;break;
case 7: coutm月d号是y年的第182+d天\n;break;
case 8: coutm月d号是y年的第213+d天\n;break;
case 9: coutm月d号是y年的第244+d天\n;break;
case 1
文档评论(0)