痛みよ感じろ 2022-04-09 21:22 采纳率: 50%
浏览 291
已结题

【C语言】使用getchar接受字符为Y N来判断程序是否继续运行 但是不管输入什么 程序都会结束

C语言的作业题

使用getchar接受字符为Y N来判断程序是否继续运行 但是不管输入什么 程序都会结束

#include<stdio.h>

#include<math.h>
int main(){
int a,i;double b;
char c;
for(i=1;i<100;i++){
printf("请输入一个小于1000的正数:\n");
scanf("%d",&a);
if(a>0&&a<1000){
b=sqrt(a);
printf("您输入的数的平方根是%.0lf\n",b);
}
else
printf("您输入的数不在有效范围内,请重新输入\n");
printf("是否继续?(Y/N): ");
c=getchar();
getchar();
if(c='N')break;
}
}

程序没有语法错误,但是起不到判断的作用
加上if(c='Y')continue
输入Y 程序继续循环运行 输入N 程序退出循环并结束 输入其他值,程序无响应
  • 写回答

5条回答 默认 最新

  • 关注

    scanf("%d",&a);之后加个getchar();
    是if(c=='N')break; 判断是否相等是两个等号 == 一个=是赋值
    你题目的解答代码如下:

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int a, i;
        double b;
        char c;
        for (i = 1; i < 100; i++)
        {
            printf("请输入一个小于1000的正数:\n");
            scanf("%d", &a);
            getchar(); //这里加getchar();
            if (a > 0 && a < 1000)
            {
                b = sqrt(a);
                printf("您输入的数的平方根是%.0lf\n", b);
            }
            else
                printf("您输入的数不在有效范围内,请重新输入\n");
            printf("是否继续?(Y/N): ");
            c = getchar();
            if (c == 'N') //判断是否相等是两个等号 == 一个=是赋值
                break;
        }
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月9日
  • 创建了问题 4月9日

悬赏问题

  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥60 关机时蓝屏并显示KMODE_EXCEPTION_NOT_HANDLED,怎么修?
  • ¥66 如何制作支付宝扫码跳转到发红包界面