gpt4 book ai didi

C++ 计算器程序

转载 作者:行者123 更新时间:2023-11-28 02:11:46 24 4
gpt4 key购买 nike

我非常了解 C++。我正在编写一个主要基于 vector 的计算器。我希望每个操作都有一个 vector ,如果调用以下操作之一,该值将由关联的 vector 操作。问题 1.我的流程是否正确?我在正确的轨道上吗? 2. 我是否需要另一种方法来输入和检查 char 和 int?

#include <stdio.h>
#include <iostream>
#include <vector>
#include <numeric>
#include <string>
#include <functional>
using namespace std;

vector <int> addition;
vector <int> subtraction;
vector <int> division;
vector <int> multiplication;

char operation;
int input;

int main() {

cout << "Welcome to my Calculator Program" << endl;
cout << "Enter your calculation: ";
void operation();

return 0;

}

void operation() {
cin >> operation;
switch (operation) {
case '+':
addition.push_back(input);
break;
case '-':
subtraction.push_back(input);
break;
case '/':
division.push_back(input);
break;
case '*':
multiplication.push_back(input);
break;
default:
cout << "You have entered an invalid operation" << endl;
}
}

int add(vector <int> addition) {
for (int i; i > addition.size(); i++) {
int sum = std::accumulate(addition.begin(), addition.end(), 0);
}
return sum;
}

int sub(vector <int> subtraction) {
for (int i; i > subtraction.size(); i++) {

}
}

最佳答案

看来您的方向对我来说是正确的。要回答你的第二个问题,不,cin>>variable; 会自动尝试将用户输入转换为 variable 的类型。

这个程序的主要问题是它不遵循运算顺序,这使得它作为计算器毫无用处。

当您执行 void operation(); 时,您并没有调用 operation();你在宣布它。除了编译器警告外,什么都不会发生。

std::accumulate() 的整个思想是避免循环遍历 vector 或数组!重新评估您是否真的需要那些 for 循环。

修正你的缩进。现在的样子让人很难理解程序的流程。查看:https://www.cs.northwestern.edu/academics/courses/211/html/c++-style.html#indent

在可以避免的情况下不要使用全局变量,在这种情况下你绝对可以这样做。在这个程序中,这并不重要,但这是一个非常糟糕的习惯。

您正在使用命名空间 std,但仍将事物称为 std::whatever。这是多余的。

我认为您应该回到教科书并通过一些更简单的示例进行操作。你的逻辑(大部分)是合理的,但你缺乏对语法的掌握。这没什么好羞愧的——C++ 很难,而且正如你所说,你是新手——但在处理比基本示例更复杂的任何事情之前,你确实需要了解这一点。

祝你好运!

关于C++ 计算器程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com