数学计算器在C++中没有 2 个操作数

Math Calculator without 2 operands in C++

本文关键字:操作数 计算器 C++      更新时间:2023-10-16

该值从 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++;
}
}

你的主要问题是

  1. q未定义,因此while(IN != q)将变为未定义的行为
  2. C++中,对于任何基元数据类型,=表示赋值运算符,而不是比较运算符。要比较某些内容,请使用==
  3. Val是一个数据类型int但分配的值0.0即浮点数或双精度值。

你的程序在 if 语句中做什么是:(例如这个if语句)

if (sign = '-')

  1. 程序将45-的值分配给sign变量
  2. if语句检查变量sign的值0
    • 如果值0则认为语句false并跳过块
    • 如果值不是0则认为语句true并输入块
  3. 程序在if块内运行代码

该程序为代码中的每个if语句执行所有这 3 件事,我很少在Windows运行自己的代码,所以我不太确定为什么程序给出Run-Time Check Failure #3-T错误

一点建议,每当需要使用多个if语句时,请使用switch,因为它更容易阅读。