【问题标题】:My code keeps defaulting to addition, when I want the operation to be switchable当我希望操作可切换时,我的代码一直默认为加法
【发布时间】:2023-01-09 06:02:49
【问题描述】:

我是 C++ 的初学者,我正在尝试编写一个可以执行所有 4 种基本数学运算的计算器。问题是,它一直默认为加法,事实上,我可以将任何东西放入你应该放置操作符号的地方,并且它会加法。

#include <iostream>
using namespace std;
int main()
{
    string Operation;
    float Number1{}, Number2{};
    float Answer1, Answer2, Answer3, Answer4;

    cout << "Calculator 1.0" << endl;
    cout << "Enter Equation: ";
    cin >> Number1 >> Operation >> Number2;

    if (Operation == "Plus" or "plus" or "Add" or "add" or "+")
    {
        Answer1 = Number1 + Number2;
        cout << Number1 << " + " << Number2 << " = " << Answer1;
    }
    else
    {
        if (Operation == "Minus" or "minus" or "-")
        {
            Answer2 = Number1 - Number2;
            cout << Number1 << " - " << Number2 << " = " << Answer2;
        }
        else
        {
            if (Operation == "times" or "Times" or "*" or "x")
            {
                Answer3 = Number1 * Number2;
                cout << Number1 << " x " << Number2 << " = " << Answer3;
            }
            else
            {
                if (Operation == "/")
                {
                    Answer4 = Number1 / Number2;
                    cout << Number1 << " / " << Number2 << " = " << Answer4;
                }
            }
        }
    }
}

我试图将操作与第一个 if 语句分开并制作单独的操作,但所做的只是同时打印两者,就好像 if 语句不存在并且它只是执行所有代码而不管它说了什么.

【问题讨论】:

  • 如果您不知道 C++ 中的正确语法,则需要查看教科书。任何猜测正确语法的尝试都将被证明是错误的。这不是您将变量与多个值进行匹配的方式。
  • 提示:if (x == y or z) 并没有按照您的想法去做。它评估为(x==y) or (z)
  • Operation == "Plus" or "plus" or "Add" or "add" or "+" - The Definitive C++ Book Guide and List

标签: c++ math calculator calculation


【解决方案1】:

c++ 不是英语,这个

if (Operation == "Minus" or "minus" or "-")

不做你想做的,你需要

if (Operation == "Minus" or Operatin == "minus" or Operation == "-")

以及其他地方的类似修复

【讨论】:

    猜你喜欢
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2013-07-15
    • 2020-12-17
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多