A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高伟杰 中级黑马   /  2014-3-16 06:00  /  1103 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高伟杰 于 2014-3-24 20:03 编辑

//输入一个整数month代表月份,根据月份输出对应的季节。 用户在输入负数和大于12的数值时,提示重新输入

#include <stdio.h>

int main(){

int month;

    printf("请输入数值:\n");
    scanf("%d",&month);     

while (month<=0){

       //提示用户重新输入数值

       printf("请重新输入数值:\n");
       //输入月份

       scanf("%d",&month);
    }
while (month>12){

        printf("请重新输入数值:\n");
        scanf("%d",&month);

    }
//判断月份区域
if (month<3 || month ==12){
        printf("现在是冬季\n");
    }
    else if (month<6){
        printf("现在是春季\n");
    }
    else if (month<9){
        printf("现在是夏季\n");
    }
    else{
        printf("现在是秋季\n");
    }
      return 0;
}
//代码中使用了两次while,不知道有什么好的写法可以去掉第二个while,只在一个循环体中判断数值大于等于0且小于等于12

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

6 个回复

倒序浏览
while ( (month<=0) || (month>12) ){

       //提示用户重新输入数值

       printf("请重新输入数值:\n");
       //输入月份

       scanf("%d",&month);
    }

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
满足其中任何一个这个while都不会跳出!
回复 使用道具 举报
兄台代码:
#include <stdio.h>

int main(){

int month;

    printf("请输入数值:\n");
    scanf("%d",&month);     

while (month<=0){

       //提示用户重新输入数值

       printf("请重新输入数值:\n");
       //输入月份

       scanf("%d",&month);
    }
while (month>12){

        printf("请重新输入数值:\n");
        scanf("%d",&month);

    }

兄台的代码有一个bug, 如果用户开始输入的月份是 13  ,就会不会满足 month <= 0 这个条件,自然会进入下一个条件
month > 12   然后如果用户在这输入 0的 就会不满足 month > 12 ,所以最终的月份会是 0月

建议兄台可以使用  do{}while();
do{
        printf("请输入月份:\n");
        scanf("%d", &month);
      }while(month < 1 || month > 12);

不知道兄台是否明白


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
沙洲冷 来自手机 中级黑马 2014-3-16 14:16:44
报纸
就像上面这位仁兄说的一样,楼主分开写是有bug的,必须像二楼那样,把两个条件写在一块儿判断才行:while ( (month<=0) || (month>12) ,希望楼主采纳。
回复 使用道具 举报
懂了,谢谢,原来我在写的时候是这样写的while (条件1 ||条件2 ),每次执行都是错误输出。原来是要分开写才行。
回复 使用道具 举报
keycola 发表于 2014-3-16 10:54
兄台代码:
#include
int main(){

谢谢解惑,我马上试试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马