请教c语言高手帮小第一个忙拉,谢谢

来源:百度知道 编辑:UC知道 时间:2024/07/05 00:32:11
题目是这样的,输入一个人的生日,输入后计算出从出生到现在所有的闰年,我当时在学校做的,老师检查的时候输入了一大堆英文字母上去,然后就出错了,就是说必须输入正确的年,月,日的格式才能计算出来,输入的不正确就会自动提示让你重新输入,那个高手能给小弟解答,小弟将感激不尽

#include <iostream.h>
#include <stdlib.h>
void main()
{
char a[8];
int asc,n,year;
cout<<"请输入当前年份:";
cin>>year;
cout<<"请输入您的出生日期(如19810227):";
lp: for(int i=0;i<8;i++)
cin>>a[i];
n=atoi(a);
for(i=0;i<8;i++)
{
asc=(int)a[i];
if(asc>57||asc<48||(n/100)%100>12||n%100>31)
{
cout<<"您输入的日期有误,请重新输入:";
goto lp;
}
}
n=n/10000;
int pd;
pd=n;
cout<<"出生至今共经历的润年有:"<<endl;
do
{
if((pd%4==0&&pd%100!=0)||pd%400==0)
cout<<pd<<endl;
pd=pd+1;
}while(pd<=year);

}