C++ 数组平均值计算:使用自定义函数
以下是使用 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;
}
程序错误分析:
- 在函数
fib中,使用了全局变量arave来保存平均值,但没有将结果返回。应该将计算得到的平均值作为函数的返回值,而不是使用全局变量。 - 在
main函数中,调用函数fib时没有传递数组的实际大小,导致函数无法正确计算平均值。应该将数组的实际大小i作为参数传递给函数。 - 在输出平均值时,使用了错误的变量
num,应该使用正确的变量number。
修复方案:
- 在函数
fib中,将计算得到的平均值average作为函数的返回值。 - 在
main函数中,将数组的实际大小i作为参数传递给函数fib。 - 在输出平均值时,使用正确的变量
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
代码说明:
fib函数接受一个指向整数数组的指针arr和数组的大小n作为参数。- 函数使用循环累加数组中所有元素的值,然后将总和除以数组的大小,得到平均值。
main函数首先使用循环从标准输入中读取整数,并将它们存储在数组arr中。- 循环以 0 作为结束标志。
- 然后,
main函数调用fib函数,并将数组arr和数组大小i作为参数传递。 fib函数返回计算得到的平均值,main函数将结果存储在number变量中。- 最后,
main函数使用cout输出平均值。
希望这份代码和解释能帮助您理解如何使用 C++ 语言实现数组平均值的计算。
原文地址: https://www.cveoy.top/t/topic/cqPu 著作权归作者所有。请勿转载和采集!