计算值的总和

时间:2016-02-03 13:26:49

标签: c++ arrays

我正在制作一个程序,当用户输入一个保存到数组中的数字时,用户输入一个数字,该数字等于一个数组将具有多少元素。然后我有一个函数,它将获取数组中元素的总和并将其保存到int。我的问题是,当它保存到int并再次按下相同的功能时,它会使数字翻倍。 举个例子,如果数组的总和是5,我按下我的菜单中的功能就会说5,当我再按一次时它会说10.如何让它不加倍? 我的int sum是全局的,因为更多函数需要访问它。

int* talSerie = new int[num]; (global)
int num; (global)

void sumOfUserInput() {
    int summa = 0;
    int sum = 0;
    for (int a = 0; a < 1; a++)
    {
        sum += talSerie[a];
        summa = sum;
    }
    Menu();
}

我知道它与+ =有关但我不知道如何重新格式化,有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

int num = 1000; // change this value accordingly
int* talSerie = new int[num];

void sumOfUserInput() {
    int sum = 0;
    for (int a = 0; a < num; a++)
    {
        sum += talSerie[a];
    }
    Menu();
}

如果你仍然遇到错误,请确保talSerie正常,也就是说,我的意思是,确保talSerie充满了调试它的正确值。

您的num必须在talSerie之前初始化,因为它用于数组大小。

答案 1 :(得分:0)

int x;
x=10;
int *myArray;                //Declare pointer to type of array
myArray = new int[x];   //use 'new' to create array of size x
myArray[3] = 10;          //Use as normal (static) array
...
delete [] myArrray;       //remeber to free memeory when finished.

你也可以使用像这样的矢量

int x;
in >> x;
int* array = new int[ x ];
// use array here ...
delete [] array;