注册 登录
编程论坛 C语言论坛

计算器程序除法不输出

小红帽lqq 发布于 2021-11-13 22:17, 1596 次点击
#include <stdio.h>
int main()
{
    float a,b,c;
    char c1;                                      
    scanf("%c",&c1);
    getchar();
    if(c1=='A')   
    {
    scanf("%f %f",&a,&b);
    c=a+b;
    printf("%f+%f=%f",a,b,c);
    }
    else if(c1=='B')
    {
    scanf("%f %f",&a,&b);
    c=a-b;
    printf("%f-%f=%f",a,b,c);
    }
    else if(c1=='C')
    {
    scanf("%f %f",&a,&b);
    c=a*b;
    printf("%f*%f=%f",a,b,c);
    }   
    else if(c1=='D')
    {
    scanf("%f %f",&a,&b);
    c=a/b;
    printf("%f/%f=%f",a,b,c);
    }
    return 0;
}
为什么我这个代码运行后,在除法那里运行后输入两个数字,点击enter他没有输出答案。
5 回复
#2
diycai2021-11-13 22:59
https://www.bccn.net/run/

程序没问题。
#3
baolis2021-11-13 23:33
getchar();
去掉!!!
#4
Hhu_TF2021-11-14 13:16
程序代码:
#include <stdio.h>

int main() {
    float a, b, c;
    char c1;
    scanf("%f%c%f", &a, &c1, &b);
    getchar();
    if (c1 == '+') {
        c = a + b;
        printf("%f+%f=%f", a, b, c);
    } else if (c1 == '-') {
        c = a - b;
        printf("%f-%f=%f", a, b, c);
    } else if (c1 == '*') {
        c = a * b;
        printf("%f*%f=%f", a, b, c);
    } else if (c1 == '/') {
        c = a / b;
        printf("%f/%f=%f", a, b, c);
    }
    return 0;
}
#5
baolis2021-11-14 13:27
  getchar(); Hhu_TF,你看看这个语句有啥用。你可以取消一下看看
#6
Hhu_TF2021-11-14 14:48
getchar()是c语言中的一个输入函数,可以用它来赋一个字符的值.
例如: char a;
a=getchar();
当你在键盘上输入一个字符(如输入g)后按回车,那么字符变量a的值就是'g'了。
与scanf的区别:
1、getchar()函数只能输入一个字符型的值,而scanf()函数除了字符型,还可以输入多种数据类型的值,包括整型、浮点型等。
2、scanf()函数输入字符型需要%c说明符,而getchar()函数不需要说明符。
但在我的代码里getchar()确实没啥用。

1