如何正确使用指针来计算平均值

时间:2018-12-19 17:40:24

标签: c++ pointers arduino

我想使用avgs作为指针,但是如何修改下面的代码以正确使用它?给定起始指针和长度,我正在计算一个int数组的平均值。

int compute_average(int *avgs, int len) {
  int sum = 0;
  for (int i = 0; i < len; i++)
  sum += avgs[i];
  return (int)(sum / len);
}

我试图这样写,但无法正常工作:

  do {sum += *avgs;} 
  while(*(avgs++)!='\0');

1 个答案:

答案 0 :(得分:-2)

在处理字符串时,测试指针是否未指向\0会很好。在这里,您有一个整数数组和一个长度数组,因此您无法真正使用目标点来停止递增指针。您需要像在第一个代码段中一样使用该len,但是不必访问数组的第i个元素,而是可以增加指针。像这样:

int compute_average(int *avgs, int len) {
  int sum = 0;
  for (int i = 0; i < len; i++)
    sum += *(avgs++);
  return (int)(sum / len);
}