数学计算器在C++中没有 2 个操作数
Math Calculator without 2 operands in C++
该值从 0 开始,然后可以使用任何数学操作数进行计算。代码编译成功,但不起作用。终端窗口显示"中止"、"重试"和"取消"。规则是你不能使用 2 个操作数,而只是继续添加前一个数字来呈现操作数。
#include <iostream>
#include <cmath>
using namespace std;
void Input(double input);
int main()
{
double sign, input;
cout << "This program calculates any given number upto 1 decimal place using the following operators:" << endl;
cout << " '+' - Addition." << endl;
cout << " '-' - Subtraction" << endl;
cout << " '*' - Multiplication." << endl;
cout << " '^' - Root." << endl;
cout << " '/' - Division." << endl;
Input(input);
return 0;
}
void Input(double IN)
{
char q;
char sign;
int Val = 0.0;
cin >> sign >> IN;
while (IN != q)
{
if (sign = '-')
Val -= IN;
if (sign = '+')
Val += IN;
if (sign = '*')
Val *= IN;
if (sign = '/')
Val /= IN;
cout << endl << "Result so far is " << IN;
IN++;
}
}
你的主要问题是
q
未定义,因此while(IN != q)
将变为未定义的行为- 在
C++
中,对于任何基元数据类型,=
表示赋值运算符,而不是比较运算符。要比较某些内容,请使用==
。 Val
是一个数据类型int
但分配的值0.0
即浮点数或双精度值。
你的程序在 if 语句中做什么是:(例如这个if
语句)
if (sign = '-')
- 程序将
45
-
的值分配给sign
变量 if
语句检查变量sign
的值0
- 如果值
0
则认为语句false
并跳过块 - 如果值不是
0
则认为语句true
并输入块
- 如果值
- 程序在
if
块内运行代码
该程序为代码中的每个if
语句执行所有这 3 件事,我很少在Windows
运行自己的代码,所以我不太确定为什么程序给出Run-Time Check Failure #3-T
错误
一点建议,每当需要使用多个if
语句时,请使用switch
,因为它更容易阅读。
相关文章:
- 控制允许动态运行c++的并发操作数
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- 使用 BMI 计算器对C++中的数字进行四舍五入的问题
- 错误 C2679:二进制"<<":未找到采用类型 'std::string_view' 的右侧操作数的运算符(或者没有可接受的转换)
- C++ 带有向量的 IF 计算操作数
- 是否所有C++运算符都接受操作数?
- 一元*运算符的操作数是否期望一个 prvalue
- 我在c ++矩阵计算器程序中找不到错误
- 与'operator='不匹配(操作数类型'String'且"void")
- C++计算器,不能单独除以 0
- 不正确的操作数类型 MSVC
- C2678 二进制 '==':未找到采用 'Card' 类型左操作数的运算符(或者没有可接受的转换)
- 错误:类型"double()"和"double()"的操作数无效到二进制&quo
- 我的运算符重载是否有效<<(流插入)左操作数不是 ostream
- 没有运算符"="与这些操作数匹配,JUCE 窗口演示应用程序
- 如果我在指针中使用 ++ 操作数,我的值就会出错
- 二进制表达式的操作数无效 - 使用 for 和迭代器
- 数学计算器在C++中没有 2 个操作数
- RPN计算器(将操作数应用到堆栈时出现问题)
- c++后缀计算器不能处理一行中的两个操作数