淡然若水 发表于 2017-3-28 15:56:39

新人,请大家帮忙修改指正一下,非常感谢!

新人,在学习小甲鱼老师的《带你学C带你飞》中,根据视频中的例子写了一个程序,多加了一个判断,就是在输入非“Y/N”时提示“请输入Y/N”。其他分支都可以正常执行,唯独第一问回答“N”时会弹出多余提示。望能指正并解惑,感激不尽。

程序如下:
#include<stdio.h>
int main()
{
    char a,b;
    printf("是否有空?Y/N:");
    scanf("%c",&a);
    getchar();
    if(a=='Y')
    {
            printf("是否下雨?Y/N:");
      scanf("%c",&b);
        }
   
    else if(a=='N')
    {
            printf("不要难过!\n");
        }
        if(b=='Y')
        {
                printf("记得带伞!\n");
        }
        else if(b=='N')
        {
                printf("玩得开心!\n");
        }
        else
        {
                printf("请输入Y/N!");
        }
        return 0;
}

zlj19931010 发表于 2017-3-28 16:06:24

把判断b的句子放到 输入b之后,不然b里面一直没有值,肯定会提示

#include<stdio.h>
int main()
{
    char a,b;
    printf("是否有空?Y/N:");
    scanf("%c",&a);
    getchar();
    if(a=='Y')
    {
      printf("是否下雨?Y/N:");
      scanf("%c",&b);

      if(b=='Y')
      {
            printf("记得带伞!\n");
      }
      else if(b=='N')
      {
            printf("玩得开心!\n");
      }
      else
      {
            printf("请输入Y/N!");
      }
    }else if(a=='N')
    {
      printf("不要难过!\n");
    }else{
      printf("请输入Y/N!");
    }

    return 0;
}
页: [1]
查看完整版本: 新人,请大家帮忙修改指正一下,非常感谢!