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

【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 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭