使用函数来查找数组C++的平均值
Using a function to find the average of an array C++
这个任务的目的是找到数组的平均值,但不是在main中,我必须调用一个函数来求和并显示平均值。
我以为我的代码是健全的,但它只是返回"平均值是011014F1"
我尝试了几种不同的方法来实现这个功能,但我在某个地方,也许在任何地方都出了问题!
只是提醒一下,我刚开始编程。
这是我的代码:
#include <iostream>
#include <vector>
using namespace std;
void printArray(int theArray[], int sizeOfarray);
float average(float numbers[], float size, float arrayAverage);
int main()
{
int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
printArray(array, 10);
cout << "The average is: " << average << endl;
return 0;
}
void printArray(int theArray[], int sizeOfarray)
{
for (int x = 0; x < sizeOfarray; x++)
{
cout << theArray[x] << endl;
}
}
float average(float numbers[], float size, float arrayAverage)
{
double sum = 0.0;
for (int x = 0; x < size; x++)
{
sum += numbers[x];
arrayAverage = sum / size;
}
return (arrayAverage);
}
我最初将float average函数设置为一个float,其中int表示"numbers"、"size"answers"arrayAverage",但我认为我会将它们全部更改为float,这样它们就不会冲突。如将int转换为float等。
正如我所说,我是新手,所以我的逻辑并不完全正确,但我认为我走的是正确的道路。
你知道为什么它会返回011014F1和这样的数字,而不是1-10的平均值吗?
非常感谢任何提示!
average
是一个函数,您需要调用并打印它返回的内容。您现在打印的是该函数的地址。
这里有很多问题。第一:
cout << "The average is: " << average << endl;
这只是打印出average
函数的地址,而不是调用它
cout << "The average is: " << average(array, 10, 0) << endl;
其次,您的方法签名有各种类型的不匹配。所需的数组值类型是float
,但您正在向它传递一个int
数组。这不起作用,因为编译器不允许从int[]
到float[]
的隐式转换。方法签名中的size
参数也应该是int
,而不是float
,因为数组大小总是整数。
第三,arrayAverage
参数似乎没有任何用途,只是可能会打乱你的数学运算。您可以将它用作正在运行的累加器,这很好,但没有理由将它传递给函数,它可能只是一个本地值。所以,你的方法签名应该是这样的:
float average(float numbers[], int size);
最后,计算数组平均值的数学方法是错误的。你做:
for (int x = 0; x < size; x++)
{
sum += numbers[x];
arrayAverage = sum / size;
}
特别是arrayAverage = sum / size
是错误的。或者更确切地说,只有在最后的循环迭代过程中才是正确的。这意味着这只是浪费数学。应该是:
float average(float numbers[], int size) {
double sum = 0;
for (int x = 0; x < size; x++)
{
sum += numbers[x];
}
return sum /(double)size;
}
您没有将任何东西传递给您的函数average,float average(float numbers[],float size,float arrayAverage)您应该将数组作为第一个参数,并将数组的大小传递给第二个,第三个。如果您不需要它,我建议您删除它。您的函数将是:
float average(float numbers[], float size)
{
float average;
double sum = 0.0;
for (int x = 0; x < size; x++)
{
sum += numbers[x];
arrayAverage = sum / size;
}
return (average);
}
在你的main中,你做了一个float averageResult=average(数组,大小);qDebug()《平均结果;
#include <iostream>
#include <vector>
using namespace std;
void printArray(int theArray[], int sizeOfarray);
int main()
{
int array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
printArray(array, 10);
return 0;
}
void printArray(int theArray[], int sizeOfarray)
{
for (int x = 0; x < len(theArray); x++)
{
average = average + theArray[x]
}
average = average/(len(theArray));
cout << average;
}
- 计算数组c++的平均值
- 计算平均值,不包括上次得分
- 彩色图像的卤化物处理平均值
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 按平均值替换数组中的元素
- 如何返回多个矢量对象的平均值?C++
- 将随机生成的数字添加到数组 + 对这些数组求平均值
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 制作具有平均值的随机数生成器
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- 如何使用对象制作分数列表并获得平均值
- 浮点格式数组的平均值
- 在二叉搜索树C++中计算平均值
- C 复合赋值运算符 ^= 平均值
- 我们如何并行运行算法的 n 个实例并以有效的方式计算结果函数的平均值?
- 我可以计算多线程数的平均值吗?
- 计算另一个图像像素满足条件的像素值的平均值
- 做一个unordered_multimap键的平均值是更好的方法吗?
- 使用数学地板找到平均值
- 从文件中读取成绩并将平均值输出到另一个文件C++