我有点像我正在做的一些代码。我要做的就是在评论中。
//Write a function that computes the average value of an array of floating-point data:
//double average(double* a, int size)
//In the function, use a pointer variable, not an integer index, to traverse the array
//elements.
#include <iostream>
using namespace std;
double average(double* a, int size)
{
double total = 0;
double* p = a;
// p starts at the beginning of the array
for (int i = 0; i < size; i++)
{
total = total + *p;
// Add the value to which p points
p++;
// Advance p to the next array element
}
return total / size;
}
开始没有运行。我是否真的要正确地解决这个问题?基本上我试着按照这本书来浏览所有元素然后将它平均化......但我有这种强烈的感觉我错过了一些东西。
抱歉,如果这对你们中的一些人来说显而易见。我仍然对这一切都很陌生,我的老师并不完全......她并没有教我们C ++的编码方面。她所做的就是从200多张幻灯片中的5张中读取并进行手动追踪(甚至不是伪代码),然后通过随机选择一个编码任务将我们扔给狼群。她教的方式基本上好像我们已经知道如何编码,我们有些人这样做,我们中的一些人(比如我)第一次看到这个。 她甚至没有教我们如何使用编译器,所以我们基本上都在学习所有这些。对不起,我在那里咆哮。无论如何有人可以帮忙吗?答案 0 :(得分:3)
您的功能正确。
Here it is, running, and resulting in the correct output
如果问题是您不知道(虽然看起来不太可能),我必须添加main
函数并提供要处理的函数的数据:
int main()
{
double array[5] = {1,2,3,4,5};
std::cout << average(array, 5);
}
但那是所有我必须做的事情。
答案 1 :(得分:0)
这是另一种方式,在这里我使用pointer notation
来遍历数组。根据i
的值,我们可以遍历数组。不需要另外一个变量*p
,因为你已经有了*a
。
double average(double* a, int size) {
double total = 0;
// *(a + i) starts at the beginning of the array
for (int i = 0; i < size; i++)
{
total = total + *(a + i);
}
return total / size;
}