#include<iostream.h>
void sfsrn(int y,int m,int d)
{
int c;
if((y%4==0 && y%100!=0) || y%400==0)
{
if(m==2&&d>29)
{cout<<"输入的日期有误,本程序拒绝计算自动退出"<<endl;
break;}
switch (m)
{
case 1: c=d;break;
case 2: c=31+d;break;
case 3: c=60+d;break;
case 4: c=91+d;break;
case 5: c=121+d;break;
case 6: c=152+d;break;
case 7: c=182+d;break;
case 8: c=213+d;break;
case 9: c=244+d;break;
case 10: c=274+d;break;
case 11: c=305+d;break;
case 12: c=335+d;break;
}
cout<<"今天是第"<<c<<"天"<<endl;
}
else
{
if(m==2&&d>28)
{cout<<"输入的日期有误,本程序拒绝计算自动退出"<<endl;
break;}
switch (m)
{
case 1: c=d;break;
case 2: c=31+d;break;
case 3: c=59+d;break;
case 4: c=90+d;break;
case 5: c=120+d;break;
case 6: c=151+d;break;
case 7: c=181+d;break;
case 8: c=212+d;break;
case 9: c=243+d;break;
case 10: c=273+d;break;
case 11: c=304+d;break;
case 12: c=334+d;break;
}
cout<<"今天是第"<<c<<"天"<<endl;
}
}
void main()
{
cout<<"想要终止本程序请输入 0 0 0"<<endl;
cout<<"请输入想要查询的日期"<<endl;
int y,m,d;
cin>>y>>m>>d;
while(1)
{
if(y==0)
break;
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12&&d>31)||(m==4||m==6||m==9||m==11&&m>30))
{cout<<"输入的日期有误,本程序拒绝计算自动退出"<<endl;
break;}
sfsrn(y,m,d);
cout<<"请输入日期";
cin>>y>>m>>d;
}
}
把红色的部分删除后就可以运行了,蓝色的部分没错,break用在了if之后。红色部分的不行?