c++;计算器和预期的答案完全不同 我正在制作一个C++计算器,可以计算多个变量,但是我在计算部分被卡住了…计算器的工作原理是一次获取一个输入,并将它们存储在两个向量中,一个称为“nums”,另一个称为“ops”,我有一个for循环,从向量
c++;计算器和预期的答案完全不同 我正在制作一个C++计算器,可以计算多个变量,但是我在计算部分被卡住了…计算器的工作原理是一次获取一个输入,并将它们存储在两个向量中,一个称为“nums”,另一个称为“ops”,我有一个for循环,从向量中获取信息,并将它们计算成一个称为“sum”的双精度数。计算器的工作方式与我希望的完全相同,直到计算部分,我让它使用for循环和if语句来计算我希望它使用的每个运算符(+、-、/、*)。以下是计算本身的代码:c++;计算器和预期的答案完全不同 我正在制作一个C++计算器,可以计算多个变量,但是我在计算部分被卡住了…计算器的工作原理是一次获取一个输入,并将它们存储在两个向量中,一个称为“nums”,另一个称为“ops”,我有一个for循环,从向量,c++,C++,c++;计算器和预期的答案完全不同 我正在制作一个C++计算器,可以计算多个变量,但是我在计算部分被卡住了…计算器的工作原理是一次获取一个输入,并将它们存储在两个向量中,一个称为“nums”,另一个称为“ops”,我有一个for循环,从向量中获取信息,并将它们计算成一个称为“sum”的双精度数。计算器的工作方式与我希望的完全相同,直到计算部分,我让它使用for循环和if语句来计算我希望它使用的每个运算符(+、-、/、*)。以下是计算本身的代码: else if(line == &
else if(line == "="){
sum = nums[0];
for(int k =0; k < nums.size(); k++){
if(ops[k] == '+'){
sum = sum + nums[k+1];
}else if(ops[k] == '-'){
sum = sum - nums[k+1];
}else if (ops[k] == '/'){
sum = sum / nums[k+1];
}else if(ops[k] == '*'){
sum = sum * nums[k+1];
}else{
sum = sum;
}
}
cout << sum << endl;
ops.clear();
nums.clear();
}
else如果(行==”=”){
总和=nums[0];
对于(int k=0;k cout评论不适用于长时间的讨论;此对话已结束。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<double> nums;
vector<char> ops;
int numn;
int opsn;
double curnum;
char curop;
double sum;
string line = "";
int j;
bool dubnum = false;
cout << "welcome to a calculator"<<endl;
cout << "to begin please type a number and hit enter" << endl;
cout << "to continue enter the operator you wish to use (+, -, /, or *)"<<endl;
cout << "to get the result simply enter '=' and press enter"<<endl;
cout << "if you enter another number before entering an operator your calculation will reset."<<endl;
cout << "to exit calculator, please enter 'exit' and press enter" << endl;
do{
cin>>line;
j = line.length();
for(int i =0; i < j; i++){
opsn = ops.size();
numn = nums.size();
if(isdigit(line[i]) == true && dubnum == false){
curnum = stod(line);
nums.push_back(curnum);
dubnum = true;
}else if (isdigit(line[i]) == true && dubnum == true){
nums.clear();
ops.clear();
curnum = stod(line);
nums.push_back(curnum);
dubnum= true;
}else if(line == "+" || line == "-"|| line == "/"|| line == "*"){
curop = line[0];
ops.push_back(curop);
dubnum = false;
}else if(line == "="){
sum = nums[0];
for(int k =0; k < nums.size(); k++){
if(ops[k] == '+'){
sum = sum + nums[k+1];
}else if(ops[k] == '-'){
sum = sum - nums[k+1];
}else if (ops[k] == '/'){
sum = sum / nums[k+1];
}else if(ops[k] == '*'){
sum = sum * nums[k+1];
}else{
sum = sum;
}
}
cout << sum << endl;
ops.clear();
nums.clear();
}else{
if(line != "exit"){
cout << "invalid input\n";
}else{
cout<<"goodbye\n";
}
}
}
}while(line != "exit");
return 0;
}