传递给函数时找不到c ++向量?

时间:2019-03-03 05:07:39

标签: c++ arrays vector

编辑:显然这段代码不错,但是由于某些原因在Atom的内置c ++编译器上不起作用。

所以我试图用C ++创建一个程序,该程序接受一个数组,然后返回该数组中所有数字的平均值。从那以后,我了解到任何传递给函数的数组都会“衰减”到指针中,并指向向量的方向。但是,我仍然停留在此代码上,该代码似乎无法输出任何内容。我试过通过在for循环中打印它来进行调试,但它仍然不打印任何内容。这是否意味着根本找不到向量大小,而只是在开始之前就结束了?它不会引发任何错误,所以我不确定。如何获得此值以输出此向量的平均值?预先谢谢你!

#include <iostream>
#include <vector>
using namespace std;

vector<int> arr = {1, 2, 3, 4, 5, 6};

void avg(vector<int> array){
  double total = 0;
  for (int i = 0; i < array.size(); i++){
    total += array[i];
  }
  double average = total/array.size();
  cout << average;
}

main(){
avg(arr);
}

2 个答案:

答案 0 :(得分:0)

您的输出流可能已缓冲。尝试像这样在末尾添加换行符:

cout << average << endl;

答案 1 :(得分:0)

Below code is working for me, I guess you forgot to pause the result screen

#include <iostream>
#include <vector>
using namespace std;

vector<int> arr = {1, 2, 3, 4, 5, 6};

void avg(vector<int> array) {
  double total = 0;
  for (int i = 0; i < array.size(); i++) {
    total += array[i];
  }
  double average = total / array.size();
  cout << average;
}

int main() {
  avg(arr);
  system("pause");
  return 0;
}