文档介绍:#include<iostream>usingnamespacestd;#defineerror2voidjisuantianshu(inty,intm,intd);niandexingzhi(inty,intm,intd);yuefenfenxi(intm,intd);panduanzifu(inty);//主函数intmain(){ inty,m,d; cout<<"*********程序功能:输入年、月、日,打印出该天是那年的第几天**********"<<endl; do{ cout<<"\n\n请输入年月日,例如200886"<<endl; cin>>y>>m>>d; if(panduanzifu(y)==2) {continue;} if(niandexingzhi(y,m,d)==2) {continue;} if(yuefenfenxi(m,d)==2)//调用月份分析函数 {continue;} //cout<<"m="<<m;//测试用 jisuantianshu(y,m,d); }while(1); return0;}//判断输入是否为整型,若为字符型,则报告错误panduanzifu(inty){inti;i=();if(!i){cout<<"检测到非法字符,请重新输入!"<<endl;(); ();//清空缓冲区returnerror;}elsereturn0;}//月份分析函数,分析所输入月份对应的天数是否超出范围,如输入4月,则不应出现大于30天的天数d值yuefenfenxi(intm,intd){ switch(m) {case1: case3: case5: case7: case8: case10: case12: { if(d>31||d<1) { cout<<m<<"月份天数输入有误,请重新输入!"<<endl; returnerror; } }break;case4: case6: case9: case11: if(d>30||d<1) { cout<<m<<"月份天数输入有误,请重新输入!"<<endl; returnerror;} break; default:return0;}}//分析所输入的年份是平年还是闰年,并进一步分析所输入的二月份天数是否合法niandexingzhi(inty,intm,intd){ if((y%400==0)||(y%4==0)&&(y%100!=0)) {cout<<y<<"年是闰年!"<<"\n"; if((m==2)&&(d>29)) { cout<<"二月天数输入有误,请重新输入!"<<endl; returnerror;}} else {cout<<y<<"年是平年!"<<"\n"; if((m==2)&&(d>28)) { cout<<"二月天数输入有误,请重新输入!"<<endl; returnerror;}} }//下面函数计算所输入的天数属于当年的第几天,首先判断所输入年是否为闰年voidjisuantianshu(inty,intm,intd){ if((y%400==0)||(y%4==0)&&(y%100!=0))//核心函数,用if语句判断该年是否为闰年{ switch(m) { case1:c