我是C++的新手,現在有一件事情我想說清楚。正如我經歷了教程,有這個程序,存儲用戶的輸入到一個數組,並給出所有數字的總和,當用戶退出程序:更改函數簽名
//PROTOTYPE DECLARATION:
int readArray(int integerArray[], int maxNumElements);
int sumArray(int integerArray[], int numElements);
void displayArray(int integerArray[], int numElements);
int main(int nNumberofArgs, char* pszArgs[])
{
cout << "This program sums values entered\n";
cout << "Terminate the loop by entering a negative number" << endl;
//store the numbers from the user into a local array
int inputValues [128];
int numberOfValues = readArray(inputValues, 128);
//output the values and the sum of the values
displayArray(inputValues, numberOfValues);
cout << "The sum is " << sumArray(inputValues, numberOfValues) << endl;
return 0;
}
int readArray(int integerArray[], int maxNumElements)
{
int numberOfValues;
for(numberOfValues = 0; numberOfValues < maxNumElements; numberOfValues++)
{
//fetch another number
int integerValue;
cout << "Enter next number: ";
cin >> integerValue;
if (integerValue < 0)
{
break;
}
//otherwise store the number into the storage array
integerArray[numberOfValues] = integerValue;
}
//return the number of elements read
return numberOfValues;
}
//displayArray - display the members of an array:
void displayArray(int integerArray[], int numElements)
{
cout << "The value of the array is:" << endl;
for(int i = 0; i < numElements; i++)
{
cout << i << ":" << integerArray[i] << endl;
}
cout << endl;
}
//sumArray
int sumArray(int integerArray[], int numElements)
{
int accumulator = 0;
for(int i = 0; i < numElements; i++)
{
accumulator += integerArray[i];
}
return accumulator;
}
我的問題是:
- 是否需要在每個函數中聲明局部變量(例如
int inputValues [128];
)? - 將輸入存儲到函數原型中聲明的參數中是否正確?例如,我們是否可以將所有內容都存儲到
integerArray[]
而不是創建存儲陣列integerValue
?
這看起來很明顯,但我想明白這一點,以避免將來犯錯。
'integerValue'不是一個數組。你應該在更簡單的練習上工作一段時間。 – Beta
你在main中聲明數組。傳遞並填寫該方法。我沒有看到你聲明一個數組兩次。 –
查找通過引用傳遞數組。然後你可以填充數組。但正如最好先找到這些教程。 –