【问题标题】:How to extract from input?如何从输入中提取?
【发布时间】:2019-03-16 09:51:24
【问题描述】:

假设输入如下,你如何计算?

所有问题的格式为 您还注意到所有数字都是正整数,并且只有 3 种类型的运算符:+、- 和 *。

示例输入 1

5 - 3

样本输出 1

2

示例输入 2

7 * 7

样本输出 2

49

示例输入 3

13 + 4

样本输出 3

17

【问题讨论】:

标签: c++


【解决方案1】:

好吧,既然您对实施没有任何要求,那么简单的switch statement 就可以了。这是一个简单的示例实现。如果您是 C++ 新手,请记下 std::cerr

#include <iostream>
#include <cstdlib>

int main()
{
  int a, b;
  char op;
  std::cin >> a >> op >> b;
  switch (op)
  {
    case '+':
    {
      std::cout << a + b << std::endl;
      break;
    }
    case '-':
    {
      std::cout << a - b << std::endl;
      break;
    }
    case '*':
    {
      std::cout << a * b << std::endl;
      break;
    }
    default:
    {
      std::cerr << "Invalid operator" << std::endl;
      return EXIT_FAILURE;
    }
  }
  return EXIT_SUCCESS;
}

【讨论】:

    【解决方案2】:

    您的任务是在https://en.wikipedia.org/wiki/Reverse_Polish_notation 中编写一个计算器。网上有很多关于如何做到这一点的教程。

    【讨论】:

    • 所以,你并没有比我更清楚。 ;-) 我再次阅读了这个问题,但我仍然不明白你如何识别其中的 RPN。 (这并不意味着我认为你错了。);-)
    • 从现在不同格式的输入和输出来看,我不太确定我的答案了……让我们等待一个更好的格式……它仍然很混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多