C ++:使用某些代码获取错误

时间:2014-04-14 09:51:10

标签: c++

我有点像我正在做的一些代码。我要做的就是在评论中。

//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张中读取并进行手动追踪(甚至不是伪代码),然后通过随机选择一个编码任务将我们扔给狼群。她教的方式基本上好像我们已经知道如何编码,我们有些人这样做,我们中的一些人(比如我)第一次看到这个。

她甚至没有教我们如何使用编译器,所以我们基本上都在学习所有这些。对不起,我在那里咆哮。无论如何有人可以帮忙吗?

2 个答案:

答案 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;
}