如何添加大于long long,long,int等C + 11的数字

时间:2018-02-27 23:07:11

标签: c++

论坛!

我有一个项目,我们应该添加长度为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);
}

0 个答案:

没有答案