Danmoits 发表于 2020-10-27 20:46:11

如何在if表达式中判断c是否为某种符号?

任务描述
输入两个实数和一个四则运算符( +-*/ ),根据运算符执行相应的运算并输出结果,使用if语句完成。保留一位小数。

测试输入:4 91 +
预期输出:
95.0

测试输入:4 91 -
预期输出:
-87.0

测试输入:4 91 *
预期输出:
364.0

测试输入:4 2 /
预期输出:
2.0

#include<stdio.h>
int main()
{   
    int a,b,c;
    scanf("%f %f %s",&a,&b,&c);
    if(c==)
      printf("%.1f",a+b);
    else if(c==)
      printf("%.1f",a-b);
    else if(c==)
      printf("%.1f",a*b);
    else if(c== )
      printf("%.1f",a/b);
    return 0;
}

请帮忙补上if括号中的内容,判断c是否为+ -* / 符号

2269099035 发表于 2020-10-27 23:50:43

c直接用char吧,还有你用int的算出来的值,用%f是输出不出来的。硬要输出,就是加个(float)。比如(float)a+b

星空爱鱼C 发表于 2020-10-27 23:57:36

“+-*/”

风过无痕1989 发表于 2020-10-28 02:25:52

用字符数组来解决这个问题,在输入完数字之后,可能要空格、上键、运算符、回车,因此有4个元素的字符数组就够了


#include<stdio.h>
int main()
{   
    int i;
    double a,b;
    char c,str;
    scanf("%lf%lf%s",&a,&b,str);
    for(i = 0;i < 4;i++)
    {
       if(str == '+' || str == '-' || str == '*' || str == '/')
        {
            c = str;
        }
    }
    if(c == '+')
    {
      printf("%.1f\n",a+b);
    }
    else if(c == '-')
    {
      printf("%.1f\n",a-b);
    }
    else if(c== '*')
    {
      printf("%.1f\n",a*b);
    }
    else if(c== '/')
    {   
      if(b != 0)
        {
            printf("%.1f\n",a/b);
      }
      else
        {
          printf("除数不能为0 !\n");
      }
   }
    return 0;
}

xieglt 发表于 2020-10-28 10:58:26

#include<stdio.h>
int main()
{   
    int a,b,c;
    scanf("%f %f %s",&a,&b,&c);
    if(c=='+')
      printf("%.1f",a+b);
    else if(c=='-')
      printf("%.1f",a-b);
    else if(c=='*')
      printf("%.1f",a*b);
    else if(c=='/' )
      printf("%.1f",a/b);
    return 0;
}
页: [1]
查看完整版本: 如何在if表达式中判断c是否为某种符号?