循环出错的问题

snowcold 2008-06-05 07:15:20
#include<stdio.h>
#include<math.h>
void main()
{
int year,month,day,x,d,y;
printf("请输入年份");
scanf("%d",&year);
printf("请输入月份");
scanf("%d",&month);
printf("请输入日期");
scanf("%d",&day);
switch(month)
{
case 1:d=0;break;
case 2:d=31;break;
case 3:d=59;break;
case 4:d=90;break;
case 5:d=120;break;
case 6:d=151;break;
case 7:d=181;break;
case 8:d=212;break;
case 9:d=243;break;
case 10:d=273;break;
case 11:d=304;break;
case 12:d=335;break;
}
while(month>12&&month<1);
{
printf("月份不存在,请重新输入");
scanf("%d",&month);
}

if(year%4==0&&year%100!=0||year%400==0)
y=1;
else y=0;
x=d+day+y;
printf("现在日期为%d年%d月%d日 \n",year,month,day);
printf("这是一年中的第%d天 \n",x);
}


红色那段循环.就是检测限制月份为1~12.超出提示出错并且再入一次.不再范围内再次循环.但这么写只能循环一次.请问如何写正确?谢谢了
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
snowcold 2008-06-05
  • 打赏
  • 举报
回复
谢谢两位,解决了,两位的答案结合再调下位置.呵呵`THS
well4u 2008-06-05
  • 打赏
  • 举报
回复
还有一点小问题:while(month>12&&month <1),应该改为 while(month>12 || month <1)
bargio_susie 2008-06-05
  • 打赏
  • 举报
回复
while(month>12&&month <1); 你多了个分号

33,317

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧