guta8241 发表于 2021-5-20 19:27:37

王之叹息 发表于 2021-5-20 19:27:38

首先请问学getchar()这个函数了没,应该学了吧?反正就在第P13那里。如果认真听并做了课后作业了,那么请看如下
#include <stdio.h>
int main()
{

    float a,b,c;
    char ch;
    int count=0;
    printf("请输入式子:");
    scanf("%f%c%f",&a,&ch,&b);
   while(getchar()!='\n')
    {
      count++;
    }
    if(count==0)
    {
      if(ch=='+')
      {
            c=a+b;
            printf("结果为:%.2f\n",c);
      }
      else if(ch=='-')
      {
            c=a-b;
            printf("结果为:%.2f\n",c);
      }
      else if(ch=='*')
      {
            c=a*b;
            printf("结果为:%.2f\n",c);
      }
      else if(ch=='/')
      {
            c=a/b;
            if(b!=0)
            {
                printf("结果为:%.2f\n",c);
            }
            else
            {
                printf("除数不能为零!\n");
            }
      }
   }
   else
    {
      printf("抱歉算不了");
    }
    return 0;
}
应该能看懂吧,不懂再问。
还有,问题的时候代码要规范贴,就像我这样能一键复制粘贴的。
最后,如果满意的话能不能给个最佳答案呢亲{:5_92:}{:5_92:}

2523157813 发表于 2021-5-20 20:09:21

你的两个数字是个位数的运算的意思吗?还是说两个十位数之间的运算?

guta8241 发表于 2021-5-20 20:31:15

2523157813 发表于 2021-5-20 20:39:29

emmm范围的话,你输入的数字超出float的范围会自动报错,然后你应该多设置一个变量,因为你是两个数的四则运算,超出两个数显示抱歉算不了,
比如定义了a,b,c,d            例如我输出1+1*3,赋值a=1,b=+,c=1,d=*,然后判断d是否为零,因为符号在ASCII码中对应着不是零,你可以初始化给d赋值0,如果不是零,则说明他输入的不是一个两位数的运算,就输出抱歉算不了,是零就继续运算下去,希望对您有帮助。

guta8241 发表于 2021-5-20 21:25:35

2523157813 发表于 2021-5-21 19:04:51

不是非要输入d的,你可以增加一个判断,先对d初始化为0,然后如果他输入的运算超过了两位,就比如3*4/5,第四个对应的/号,它对应的ASCII是一个数,进行判断,输出运算不了,如果d是0,则正常运算,跟d无关。

guta8241 发表于 2021-5-21 19:18:50

页: [1]
查看完整版本: C语言简单的四则运算计算器,新人一枚