将数组作为函数
//1.将数组作为参数
int array_Sum(int arr[],int arrayLen){
int total = 0;
for (int i = 0; i < arrayLen; i++) {
total = total + arr[i];
}
return total;
}
说明:
将数组类型和数组中元素数量传递给数组处理函数时,请通过两个不同的参数,如上,
int arr[]
是数组类型,int arrayLen
是数组中的元素个数
更多数组类型
一、填充数组
#include <iostream>
using namespace std;
int fillArray(double arr[],int limit);
int main(int argc, const char * argv[]) {
int length = 5;
double arr[length];
int value = fillArray(arr, length);
cout << value << endl;
return 0;
}
#pragma mark 填充数组
int fillArray(double arr[],int limit)
{
double temp;
double valueSum = 0.0;
int i;
for (i = 0; i < limit; i++)
{
cout << "请输入第 " << i+1 << "个值:" << endl;
cin >> temp;
if (!cin)
{
cin.clear();
while (cin.get() != '\n')
{
continue;
}
cout << "输入类型有误,请输入正确的值 :" << endl;
break;
}
else if(temp < 0) break;
arr[i] = temp;
valueSum = valueSum + arr[i];
}
//return valueSum;
return i;
}
如上:由于接受数组名参数的函数访问的是原始数组,而不是其副本,因此可以调用该函数将值赋给数组元素,函数的一个参数是要填充的数组名称,第二个参数是数组长度。因为用户输入的元素数目可能小于数组长度,因此返回的是实际输入的元素个数
二、显示数组以及用const保护数组
#pragma mark 显示数组以及用const保护数组
void showArray(const double arr[],int length)
{
for (int i = 0; i < length; i++)
{
cout << "第" << (i+1) << "个元素的值为: " << arr[i] << endl;
}
}
int main(int argc, const char * argv[]) {
double propertites[len];
int size = fillArray(propertites, len);
showArray(propertites, size);
if (size > 0)
{
cout << "Enter revaluation factor : " << endl;
double factor;
while (!(cin >> factor))
{
cin.clear();
while (cin.get() != '\n')
{
continue;
}
cout << "Bad input ,please enter a number !" << endl;
revalution(factor,propertites,size);
showArray(propertites, size);
}
}
cout << "Done..." << endl;;
cin.get();
cin.get();
return 0;
}
说明:
创建显示数组内容的函数很简单,我们只要将数组名和条虫的数组元素数组传给函数,函数通过
for
循环来显示每一个元素。此外我们应通过const
来确保函数不修改原始数组,具体的样式为 :
void showArray(const double arr[],int length)
三、修改数组
#pragma mark 修改数组
void revalution(double r,double arr[],int n)
{
for (int i = 0; i < n; i++)
{
arr[i] *= r;
}
}
说明:
在上面的代码例子中,对数组进行的操作是:将每一个元素率与同一个评估因子想成,所以需要传递给函数的三个参数分别是:因子、数组、数组的元素数目。因为这个函数需要修改数组的元素值所以不能使用const来声明数组。