202272390 发表于 2020-9-19 11:13:22

求助 第二个scanf() 怎么没作用

#include<stdio.h>
int main()
{
        float a,b,j;
        char c;char q;
        k:printf("请输入式子;");
    scanf("%f%c%f",&a,&c,&b);
    switch(c)
        {
       
       case '+' :j=a+b;printf("结果是;%.2f\n",j);break;
       case '*' :j=a*b;printf("结果是;%.2f",j);break;
           case '-' :j=a-b;printf("结果是;%.2f",j);break;
            case '/' :
          if(b!=0){
            j=a/b;printf("结果是;%.2f",j);break;}
           else
            {
                printf("除数不能为0");
          }
    }
        printf("是否继续计算(Y/N):");
    scanf("%c",&q);
        if(q=='Y')       
        {
          goto k;
    }

        return 0;
}

sunrise085 发表于 2020-9-19 11:34:30

第二个scanf读取的是%c,那么需要在它前面加一句getchar(),用于清除缓冲区的回车字符,否则scanf读到的就是那个回车了。

乐乐学编程 发表于 2020-9-19 11:47:45

第二个scanf读取的是%c,那么需要在它前面加一句getchar(),用于清除缓冲区的回车字符,否则scanf读到的就是那个回车了。

记住了,谢谢!
页: [1]
查看完整版本: 求助 第二个scanf() 怎么没作用