kkk纯粹 发表于 2021-3-16 21:00:58

sle12编一个计算器问题

我看小甲鱼的程序,想到万一有人输入:1@2,7?8 这种 ch 不是加减乘除字符,所以我给加个default,出来的结果如图,我这程序有问题,想让它,在运行到default后就结束了,不要再接着走if...else...请知道的朋友教下我{:10_254:}

kkk纯粹 发表于 2021-3-16 21:01:35

这是我的程序#include <stdio.h>
#include <stdbool.h>

int main()
{
        float op1,op2;
        char ch;
        float result;
        bool invalid = false;
       
        printf("请输入式子:");
        scanf("%f %c %f",&op1,&ch,&op2);
       
        switch(ch)
        {
        case '+':result = op1+op2;break;
        case '-':result = op1-op2;break;
        case '*':result = op1*op2;break;
        case '/':
                if(op2 !=0)
                {
                        result = op1/op2;break;
                }
                else
                {
                        invalid = true;break;
                }
        default:printf("请输入正确的式子!\n");break;
        }
       
        if(ch=='+'||'-'||'*'||'/')
        {
                if(invalid)       
                {
                        printf("除数不能为零!\n");
                }
                else
                {
                        printf("结果是:%.2f\n",result);
                }
        }
       
        return 0;
}

人造人 发表于 2021-3-16 21:06:20

#include <stdio.h>
#include <stdbool.h>

int main()
{
      float op1,op2;
      char ch;
      float result;
      bool invalid = false;
      
      printf("请输入式子:");
      scanf("%f %c %f",&op1,&ch,&op2);
      
      switch(ch)
      {
      case '+':result = op1+op2;break;
      case '-':result = op1-op2;break;
      case '*':result = op1*op2;break;
      case '/':
                if(op2 !=0)
                {
                        result = op1/op2;break;
                }
                else
                {
                        invalid = true;break;
                }
      default:printf("请输入正确的式子!\n"); return 0;
      }
      
      if(ch=='+'||'-'||'*'||'/')
      {
                if(invalid)      
                {
                        printf("除数不能为零!\n");
                }
                else
                {
                        printf("结果是:%.2f\n",result);
                }
      }
      
      return 0;
}

kkk纯粹 发表于 2021-3-16 21:24:34

人造人 发表于 2021-3-16 21:06


666,加个return 0;就行啦

人造人 发表于 2021-3-16 21:30:14

kkk纯粹 发表于 2021-3-16 21:24
666,加个return 0;就行啦

^_^
页: [1]
查看完整版本: sle12编一个计算器问题