C++问题,请大鸟们快来指点! 10
麻烦帮我看一下,为什么输入年份过后就不能再输入月份了,是不是while用错了并帮我改一下且加以说明,谢了!//代码如下:#include<iostream>usingna...
麻烦帮我看一下,为什么输入年份过后就不能再输入月份了,是不是while用错了 并帮我改一下且加以说明,谢了!
//代码如下:
#include <iostream>
using namespace std;
bool leapYear(int y);
int main()
{
int nYear,nMonth,nDate,Number=0,sum=0;
int a[12];
a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;
a[4]=a[6]=a[9]=a[11]=30;
a[2]=28;
cout<<"请输入年份:";
cin>>nYear;
while(true)
{
if(nYear<1)
{
cout<<"年份输入错误,请重新输入:";
cin>>nYear;
}
}
cout<<"请输入月份:";
cin>>nMonth;
while(true)
{
if(nMonth<1 || nMonth>12)
{
cout<<"月份输入有误,请重新输入:";
cin>>nMonth;
}
}
cout<<"请输入当月日期:";
cin>>nDate;
while(true)
{
if(nDate<1 || nDate>31)
{
cout<<"当月日期输入有误,请重新输入:";
cin>>nDate;
}
}
if(leapYear(nYear))
{
a[2]=29;
}
if(nMonth==1)
{
sum=a[1];
}
for(int i=2;i<=nMonth;i++)
{
sum=sum+a[i-1];
}
Number=sum+nDate;
cout<<"这是 "<<nYear<<" 年,"<<"第"<<" "
<<Number<<" 天"<<endl;
system("pause");
return 0;
}
bool leapYear(int y)
{
if((y%4==0 && y%100!=0)||(y%100==0 && y%400==0))
{
return true;
}
else
return false;
}
我知道去掉while就是对的,但是我要让总是提示错误 即死循环 赶快帮忙搞一下! 展开
//代码如下:
#include <iostream>
using namespace std;
bool leapYear(int y);
int main()
{
int nYear,nMonth,nDate,Number=0,sum=0;
int a[12];
a[1]=a[3]=a[5]=a[7]=a[8]=a[10]=a[12]=31;
a[4]=a[6]=a[9]=a[11]=30;
a[2]=28;
cout<<"请输入年份:";
cin>>nYear;
while(true)
{
if(nYear<1)
{
cout<<"年份输入错误,请重新输入:";
cin>>nYear;
}
}
cout<<"请输入月份:";
cin>>nMonth;
while(true)
{
if(nMonth<1 || nMonth>12)
{
cout<<"月份输入有误,请重新输入:";
cin>>nMonth;
}
}
cout<<"请输入当月日期:";
cin>>nDate;
while(true)
{
if(nDate<1 || nDate>31)
{
cout<<"当月日期输入有误,请重新输入:";
cin>>nDate;
}
}
if(leapYear(nYear))
{
a[2]=29;
}
if(nMonth==1)
{
sum=a[1];
}
for(int i=2;i<=nMonth;i++)
{
sum=sum+a[i-1];
}
Number=sum+nDate;
cout<<"这是 "<<nYear<<" 年,"<<"第"<<" "
<<Number<<" 天"<<endl;
system("pause");
return 0;
}
bool leapYear(int y)
{
if((y%4==0 && y%100!=0)||(y%100==0 && y%400==0))
{
return true;
}
else
return false;
}
我知道去掉while就是对的,但是我要让总是提示错误 即死循环 赶快帮忙搞一下! 展开
2个回答
展开全部
把while(true)去掉,完全没有必要
if(nYear<1)
{
cout<<"年份输入错误,请重新输入:";
cin>>nYear;
}
________________________
为什么总要提示错误,无论输入对错都要提示错误?如果那样的话别用判断条件,直接提示错误就行了
if(nYear<1)
{
cout<<"年份输入错误,请重新输入:";
cin>>nYear;
}
________________________
为什么总要提示错误,无论输入对错都要提示错误?如果那样的话别用判断条件,直接提示错误就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询