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就是对的,但是我要让总是提示错误 即死循环 赶快帮忙搞一下!
展开
 我来答
广之东周
2008-12-01 · TA获得超过540个赞
知道小有建树答主
回答量:746
采纳率:0%
帮助的人:0
展开全部
把while(true)去掉,完全没有必要

if(nYear<1)
{
cout<<"年份输入错误,请重新输入:";
cin>>nYear;
}

________________________
为什么总要提示错误,无论输入对错都要提示错误?如果那样的话别用判断条件,直接提示错误就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ojnmi
2008-12-05 · TA获得超过258个赞
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
把while(true)去掉,完全没有必要

if(nYear<1)
{
cout<<"年份输入错误,请重新输入:";
cin>>nYear;
}
*-*
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式