大家看看是什么问题?
为什么在VISUAL C++下面可以编译通过的程序,在DEV C++上编译却通不过.~
#include <stdio.h>
#include <iostream.h>
class date
{
public:
getdata(int years,int months,int days);
private:
int Years,Months,Days;
};
date::getdata(int years,int months,int days)
{
int _tmpyears,_tmpmonths,_tmpdays,leap;
Years=years;
Months=months;
Days=days;
if ( Years<=0 || Years>9999 || Months <=0 || Months >12 || Days <=0 || Days > 31 )
{
cout<<"enter date error!!!"<<endl;
return 0;
}
switch (Months)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (Days>31)
{
cout<<"error Days 1-12"<<endl;
return 0;
}
else
{
if (Days==31 && Months==12)
{
_tmpdays=1;
_tmpmonths=1;
_tmpyears=Years+1;
}//12月31号,年增加
else
{
if (Days==31)
{
_tmpdays=1;
_tmpmonths=Months+1;
_tmpyears=Years;
}
else
{
_tmpdays=Days+1;
_tmpmonths=Months;
_tmpyears=Years;
}
}
}
break;
case 4:
case 6:
case 9:
case 11:
if (Days>30)
{
cout<<"error Days 4-11"<<endl;
return 0;
}
else
{
if(Days==30)
{
_tmpdays=1;
_tmpmonths=Months+1;
_tmpyears=Years;
}
else
{
_tmpdays=Days+1;
_tmpmonths=Months;
_tmpyears=Years;
}
}
break;
case 2:
if ((Years % 4 == 0 && Years % 100 !=0) || (Years % 400 == 0))
leap=1;
else
leap=0;
if (leap)
{
if (Days>29)
{
cout << "error days 2_9"<<endl;
return 0;
}
else
{
if (Days==29)
{
_tmpdays=1;
_tmpmonths=Months+1;
_tmpyears=Years;
}
else
{
_tmpdays=Days+1;
_tmpmonths=Months;
_tmpyears=Years;
}
}
}
else
{
if (Days>28)
{
cout << "error days 2_8"<<endl;
return 0;
}
else
{
if (Days==28)
{
_tmpdays=1;
_tmpmonths=Months+1;
_tmpyears=Years;
}
else
{
_tmpdays=Days+1;
_tmpmonths=Months;
_tmpyears=Years;
}
}
}
break;
/* default:
cout<<"error months"<<endl;
*/
}
cout<<"当前日期:"<<Days<<"日/"<<Months<<"月/"<<Years<<"年"<<endl;
cout<<"当前日期下一天为:"<<_tmpdays<<"日/"<<_tmpmonths<<"月/"
<<_tmpyears<<"年"<<endl;
}
void main()
{
date ymd;
int y,m,d;
cout<<"please enter date:"<<endl;
cin>>y>>m>>d;
ymd.getdata(y,m,d);
}