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

if(a+b)是否在四则运算中实现不了相应的功能呢?

爱c如爱命 发布于 2021-04-08 13:30, 1099 次点击
#include<stdio.h>
#include<math.h>
void main()
{
    float a,b;
    char c;
    printf("input expression a+b,a-b,a*b,a/b\n");
    scanf("%f%c%f%c",&a,&c,&b);
    if(a+b)
    {
         printf("a+b=%f",a+b);
    }
    else if(a-b)
    {
        printf("a-b=%f",a-b);
    }
    else if(a*b)
    {
        printf("a*b=%f",a*b);
    }
    else if(a/b)
    {
        printf("a/b=%f",a/b);
    }
    else printf("输入错误");

}
我在输入的情况下不会出现结果,像输入1.0+2.0都不会输出结果,是不是由于if(a+b)这种程序的写法是不正确的呀?那位高手能来帮帮我呀?
2 回复
#2
rjsp2021-04-08 13:50
程序代码:
#include <stdio.h>

int main( void )
{
    double a, b;
    char c = 0;
    puts( "input expression a+b,a-b,a*b,a/b" );
    scanf( "%lf %c%lf", &a, &c, &b );

    if( c == '+' )
        printf( "%g%c%g = %g\n", a, c, b, a+b );
    else if( c == '-' )
        printf( "%g%c%g = %g\n", a, c, b, a-b );
    else if( c == '*' )
        printf( "%g%c%g = %g\n", a, c, b, a*b );
    else if( c=='/' && b!=0 )
        printf( "%g%c%g = %g\n", a, c, b, a/b );
    else
        puts( "输入错误" );

    return 0;
}
#3
爱c如爱命2021-04-08 15:29
回复 2楼 rjsp
这一看秒懂了,谢谢大佬
1