【问题标题】:C++ Calculator always returns 7208640C++ 计算器总是返回 7208640
【发布时间】:2018-01-24 18:39:08
【问题描述】:

这是我的计算器的代码:

#include <iostream>
using namespace std;

int main()
{
    int fNumber, sNumber, sum;
    string op;
    cout << "You will be asked for two numbers and the operator to use on them.\nCurrently supported operators are:\n";
    cout << "    Addition: +\n    Subtraction: -\n    Multiplication: *\n    Division: \\\n    Modulo: %\n\n";

    cout << "First Number: ";
    cin >> fNumber;
    cout << "\nSecond Number: ";
    cin >> sNumber;
    cout << "\nOperator: ";
    cin >> op;

    if(op == "+"){
        int sum = fNumber + sNumber;
    } else if(op == "x" || op == "*"){
        int sum = fNumber * sNumber;
    } else if(op == "/"){
        int sum = fNumber / sNumber;
    } else if(op == "-"){
        int sum = fNumber - sNumber;
    } else if(op == "%"){
        int sum = fNumber % sNumber;
    } else{
        cout << "\nPlease use a correct Operator\n";
        return 1;
    }

    cout << "\n" << fNumber << " " << op << " " << sNumber << " = " << sum << "\n";

    return 0;
}

我完全不知道为什么,但出于某种原因,无论我给它什么数字或运算符,它都会返回“7208640”作为答案:

您将被要求输入两个数字以及在它们上使用的运算符。

目前支持的运算符有:

加法:+

减法:-

乘法:*

部门:\

模数:%

第一个数字:6

第二个数字:2

操作员:/

6 / 2 = 7208640

进程返回 0 (0x0) 执行时间:4.612 s 按任意键 继续。

【问题讨论】:

  • 您在每个作用域中创建的局部变量会影响在函数作用域中声明的局部变量。您实际上是在分配一个立即被破坏的变量。你的编译器应该已经警告过你了。
  • 尊敬的 C/C++ 新学生的老师们:请教他们启用警告并教他们这些警告的含义。它省去了很多麻烦。谢谢。
  • 我一直认为默认编译器选项应该是 -wall -werror (或任何等效项)。这将极大地帮助新的编码人员。有经验的人会知道如何关闭这些选项
  • 除了,当然,真正有经验的人知道总是有这些选项:-)
  • @pm100 这些选项有什么作用?另外,如何在代码块中启用这些功能?

标签: c++ math calculation


【解决方案1】:
if(op == "+"){
    int sum = fNumber + sNumber;

应该是

if(op == "+"){
    sum = fNumber + sNumber;

对于除第一个之外的所有其他 int sum 都相同。您声明一个变量一次,而不是每次使用它。

【讨论】:

  • 谢谢!对不起,愚蠢的错误,我今天才开始学习C++
【解决方案2】:

如上所述,从 if 语句中删除 int 声明。

另外,请将 sum 变量的名称更改为“answer”之类的名称。减法、乘法、除法和取模的结果分别称为差、积、商和余数。

【讨论】:

  • 谢谢,没想到这么一回事!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
相关资源
最近更新 更多