C++程序 数组的平均数计算(迭代和递归)

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++语言基础知识,并具备良好的编程习惯。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程