以下是使用 C++ 语言计算一维数组中 n 个整数的平均值的代码,并提供了程序错误的分析和修复方案:

#include <iostream>
using namespace std;

double fib(int* arr, int n) {
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }
    double average = static_cast<double>(sum) / n;
    return average;
}

int main() {
    int i;
    int num;
    int arr[100] = { 0 };
    for (i = 0;; i++) {
        cin >> num;
        if (num == 0) {
            break;
        }
        arr[i] = num;
    }
    double number = fib(arr, i);
    cout << number << endl;
    return 0;
}

程序错误分析:

  1. 在函数 fib 中,使用了全局变量 arave 来保存平均值,但没有将结果返回。应该将计算得到的平均值作为函数的返回值,而不是使用全局变量。
  2. main 函数中,调用函数 fib 时没有传递数组的实际大小,导致函数无法正确计算平均值。应该将数组的实际大小 i 作为参数传递给函数。
  3. 在输出平均值时,使用了错误的变量 num,应该使用正确的变量 number

修复方案:

  1. 在函数 fib 中,将计算得到的平均值 average 作为函数的返回值。
  2. main 函数中,将数组的实际大小 i 作为参数传递给函数 fib
  3. 在输出平均值时,使用正确的变量 number

修正后的代码:

#include <iostream>
using namespace std;

double fib(int* arr, int n) {
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += arr[i];
    }
    double average = static_cast<double>(sum) / n;
    return average;
}

int main() {
    int i;
    int num;
    int arr[100] = { 0 };
    for (i = 0;; i++) {
        cin >> num;
        if (num == 0) {
            break;
        }
        arr[i] = num;
    }
    double number = fib(arr, i);
    cout << number << endl;
    return 0;
}

现在,代码将正确地计算给定数组的平均值,并将结果输出。

示例:

输入:

1 3 5 9 8 7 0

输出:

5.5

代码说明:

  1. fib 函数接受一个指向整数数组的指针 arr 和数组的大小 n 作为参数。
  2. 函数使用循环累加数组中所有元素的值,然后将总和除以数组的大小,得到平均值。
  3. main 函数首先使用循环从标准输入中读取整数,并将它们存储在数组 arr 中。
  4. 循环以 0 作为结束标志。
  5. 然后,main 函数调用 fib 函数,并将数组 arr 和数组大小 i 作为参数传递。
  6. fib 函数返回计算得到的平均值,main 函数将结果存储在 number 变量中。
  7. 最后,main 函数使用 cout 输出平均值。

希望这份代码和解释能帮助您理解如何使用 C++ 语言实现数组平均值的计算。

C++ 数组平均值计算:使用自定义函数

原文地址: https://www.cveoy.top/t/topic/cqPu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录