身寸白勺女少 发表于 2019-4-20 22:41:36

【求助帖】关于switch语句作业

为啥我编译1.2*2算出来是0,这程序逻辑按小甲鱼答案给的编译的


int main()
{
      int op1,op2;
      char ch;
      float result;

      printf("请输入式子:");
      scanf("%d %c %d",&op1,&ch,&op2);

      switch(ch)
      {
                case '*':result=op1*op2;break;
                case '-':result=op1-op2;break;
                case '+':result=op1+op2;break;
                case '/':
                      if(op2==0)
                      {
                        printf("很遗憾,除数不能为0!\n");
                        break;
                      }
                      else

Croper 发表于 2019-4-20 22:57:53

int op1,op2;
...
scanf("%d %c %d",&op1,&ch,&op2);
你要用浮点数那么op1和op2也应该改成浮点数,scanf也应该进行相应的修改

身寸白勺女少 发表于 2019-4-20 23:06:23

Croper 发表于 2019-4-20 22:57
你要用浮点数那么op1和op2也应该改成浮点数,scanf也应该进行相应的修改

小甲鱼答案里就是那样写的,那应该就是小甲鱼错了

Croper 发表于 2019-4-20 23:07:52

身寸白勺女少 发表于 2019-4-20 23:06
小甲鱼答案里就是那样写的,那应该就是小甲鱼错了

请给链接,
我猜他并没有让你使用浮点数

身寸白勺女少 发表于 2019-4-20 23:08:39

Croper 发表于 2019-4-20 22:57
你要用浮点数那么op1和op2也应该改成浮点数,scanf也应该进行相应的修改

你看看我else后面的代码,为啥我1/0提示我除数不能为0然后又会输出0.00


else
                      {
                        result = (float)op1/op2;
                        break;
                      }

      }
      printf("%.2f\n",result);
      return 0;

Croper 发表于 2019-4-20 23:10:12

身寸白勺女少 发表于 2019-4-20 23:08
你看看我else后面的代码,为啥我1/0提示我除数不能为0然后又会输出0.00




因为你printf在if代码块之外啊

身寸白勺女少 发表于 2019-4-20 23:22:08

Croper 发表于 2019-4-20 23:07
请给链接,
我猜他并没有让你使用浮点数

https://fishc.com.cn/forum.php?mod=viewthread&tid=68327&extra=page%3D1%26filter%3Dtypeid%26typeid%3D570

Croper 发表于 2019-4-20 23:47:08

身寸白勺女少 发表于 2019-4-20 23:22
https://fishc.com.cn/forum.php?mod=viewthread&tid=68327&extra=page%3D1%26filter%3Dtypeid%26typeid% ...

那这回还真是小甲鱼贴错答案了
@小甲鱼
页: [1]
查看完整版本: 【求助帖】关于switch语句作业