首页 > 解决方案 > 尝试创建一个基本的计算器

问题描述

但是,当输入“12 + 3”时,它会输出“154”,或者如果我输入“12+1”,它会输出“1312”。乘法似乎也不能始终如一地工作。在大多数情况下,除法似乎还可以

    #include <iostream>
    
    
    int main()
    {
        int firstNum, secondNum, res;
        std::string op; 
    std::cout << "Enter desired operation ";
    std::cin >> firstNum >> op >> secondNum;
    if (op=="+")
    {
        res = firstNum + secondNum;
        std::cout << res;
    }
    else if(op==" - ")
    {
        res = firstNum - secondNum;
        std::cout << res;
    }
    else if(op==" x ")
    {
        res = firstNum * secondNum;
        std::cout << res;
    }
    else if(op==" / ");
    {
        res = firstNum / secondNum;
        std::cout << res;
    }
    return 0;
}

标签: c++

解决方案


4in15412in1312是除法的结果。

你有两个错误:

  • " - "您在、" * "和中有多余的空格" / ",防止它们匹配到op
  • 后面有一个额外的分号else if(op==" / "),让它无条件地进行除法。

试试这个:

#include <iostream>


int main()
{
    int firstNum, secondNum, res;
    std::string op; 
    std::cout << "Enter desired operation ";
    std::cin >> firstNum >> op >> secondNum;
    if (op=="+")
    {
        res = firstNum + secondNum;
        std::cout << res;
    }
    else if(op=="-")
    {
        res = firstNum - secondNum;
        std::cout << res;
    }
    else if(op=="x")
    {
        res = firstNum * secondNum;
        std::cout << res;
    }
    else if(op=="/")
    {
        res = firstNum / secondNum;
        std::cout << res;
    }
    return 0;
}

推荐阅读