论坛!
我有一个项目,我们应该添加长度为14或更长的数字。我做了一些挖掘工作,并意识到目前没有类型的数据需要这么大。所以,我让用户输入数字作为字符串,他们想要添加的数字存储在一个静态字符串数组中。
我想将静态数组中的数字加在一起。问题是我不知道如何处理这么大的数字。我假设你必须将字符串值转换为int'并逐个添加它们?我有一个很大的问题,想出这个逻辑。任何帮助将不胜感激。
如果没有,如果你能提供一些可以帮助我提出一些逻辑的背景。
我可以使用的唯一库函数是iostream和string。
如果你想看到我的逻辑,这是我的代码!我有一些我试图弄清楚的测试用例,请忽略评论输出。但是,如果你运行代码,你应该更好地了解我想要解决的问题。我试图总结用户输入的数字。
#include <iostream>
#include <string>
using namespace std;
void amountOfNumbers(string &userAmount, int MIN_AMOUNT, int MAX_AMOUNT){
//string alpha = "abcdefghijklmnopqrstuvwxyz";
cout << "How many numbers? -> ";
cin >> userAmount;
cout << endl;
while(!userAmount.find("abcdefghijklmnopqrstuvwxyz")){
cout << "ERROR: must be a number, try again ->";
cout << userAmount;
//cin.clear();
//cin.ignore(1000, '\n');
cin >> userAmount;
cout << endl;
}
int temp = stoi(userAmount);
while((temp < MIN_AMOUNT) or (temp > MAX_AMOUNT)){
cout << "ERROR: Program can only take in " << MIN_AMOUNT << " - "<< MAX_AMOUNT << " numbers. Try again ->";
cin >> userAmount;
cout << endl;
temp = stoi(userAmount);
}
}
void takeNumbers(string &userAmount, string (&numberArray)[11]){
int temp = stoi(userAmount);
for (int i = 0; i < temp; i++){
cout << "Input number #" << i+1 << " ->";
cin >> numberArray[i];
cout << endl;
}
}
void display(string &userAmount, string (&numberArray)[11]){
int temp = stoi(userAmount);
for (int i = 0; i < temp; i++){
cout << numberArray[i];
cout << endl;
}
}
void addNumber(string &userAmount, string (&numberArray)[11]){
}
int main() {
const int MIN_AMOUNT = 2, MAX_AMOUNT = 11, MAX_INPUT = 14;
string userAmount = "0";
string numberInput;
// static array
string numberArray [MAX_AMOUNT];
amountOfNumbers(userAmount, MIN_AMOUNT, MAX_AMOUNT);
takeNumbers(userAmount, numberArray);
display(userAmount, numberArray);
}