我正在制作一个程序,当用户输入一个保存到数组中的数字时,用户输入一个数字,该数字等于一个数组将具有多少元素。然后我有一个函数,它将获取数组中元素的总和并将其保存到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();
}
我知道它与+ =有关但我不知道如何重新格式化,有更好的方法吗?
答案 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;