【发布时间】: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