C++程序 数组的平均数计算(迭代和递归)
在C++编程中,数组是一种非常常见的数据结构。对数组中的数据进行操作,例如求平均数,是编程过程中基础的要求之一。在本文中,我们将介绍两种计算平均数的方法:迭代和递归。
迭代方法计算平均数
迭代是一种通过循环来解决问题的方法。计算数组平均数的迭代方法,需要用循环语句遍历数组,并依次累加每个元素的值,最后除以数组长度得到平均值。下面是一个例子:
#include <iostream>
using namespace std;
int main()
{
int arr[] = {5, 7, 13, 8, 4};
int sum = 0;
int len = sizeof(arr)/sizeof(arr[0]);
double avg;
for(int i=0; i<len; i++)
{
sum += arr[i];
}
avg = double(sum)/len;
cout<<"平均数为:"<<avg<<endl;
return 0;
}
在上面的代码中,我们定义了一个数组arr
,用于存储整型数据,数组中包含了5个元素。我们需要计算这个数组的平均数。首先,我们定义了一个sum
变量,用于记录数组中所有元素的和。然后,我们通过sizeof
运算符来计算数组的长度len
,这里用到了sizeof(arr)
除以sizeof(arr[0])
。接下来,我们使用for
循环语句遍历数组中的所有元素,并将每个元素的值累加到sum
变量中。最后,我们计算平均值avg
,并打印输出结果。
代码运行结果:
平均数为:7.4
递归方法计算平均数
递归也是一种解决问题的方法。在递归方法中,函数会调用自身来解决问题。计算平均数的递归方法需要定义一个函数,在函数内部调用自身来计算数组中元素的和,最后除以数组长度得到平均数。下面是一个例子:
#include <iostream>
using namespace std;
double calc_avg(int arr[], int len)
{
if(len == 1)
return double(arr[0]);
else
return (calc_avg(arr, len-1)*double(len-1) + double(arr[len-1]))/double(len);
}
int main()
{
int arr[] = {5, 7, 13, 8, 4};
int len = sizeof(arr)/sizeof(arr[0]);
double avg;
avg = calc_avg(arr, len);
cout<<"平均数为:"<<avg<<endl;
return 0;
}
在上面的代码中,我们定义了一个函数calc_avg
,它接受两个参数:数组arr
和数组长度len
。如果数组长度为1,那么直接返回数组中唯一元素的值;反之,调用自身计算前len-1
个元素的平均数,然后将结果乘以len-1
并加上数组中最后一个元素的值,最后除以数组长度len
得到新的平均数。
在main
函数中,我们定义了一个数组arr
并填充了一些数据。然后,我们通过调用calc_avg
函数计算数组的平均数,并将结果存储到avg
变量中。最后,我们将结果打印输出。
代码运行结果:
平均数为:7.4
结论
对于C++的数组平均数计算,我们介绍了两种方法:迭代和递归。虽然递归方法代码更简洁,但在处理大型数据集时,可能会达到函数调用栈的限制。因此,在处理大型数据集时,更适合使用迭代方法,而递归方法则更适合处理较小的数据集。无论使用哪种方法,都需要熟练掌握基本的C++语言基础知识,并具备良好的编程习惯。