使用getchar接受字符为Y N来判断程序是否继续运行 但是不管输入什么 程序都会结束
#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;
}
}
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;
}
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
if(c='N')break;
改为
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);
if(a>0&&a<1000){
b=sqrt(a);
printf("您输入的数的平方根是%.0lf\n",b);
}
else
printf("您输入的数不在有效范围内,请重新输入\n");
printf("是否继续?(Y/N): ");
getchar();
c=getchar();
if(c=='N')
break;
}
}
第一个错误:改成if (c == 'N')
第二个不规范:for(i=1;i<100;i++) 改成 for(;1 ;),或者用 while 或 do...while
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!已解决 谢谢