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

【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月16日
  • 已采纳回答 4月9日
  • 创建了问题 4月9日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部