如何在C ++中发现数组中元素的数量

时间:2018-11-15 18:21:57

标签: c++ arrays

我在C ++中的代码遇到一些问题。我想知道如何发现数组中元素的数量。请遵循代码:

#include <iostream>
#include <cstdlib>

using namespace std;

int avg(int numbers[]){
    int amount; // The problem is in. How can I discover the amount of elements in an array?

    int sum = 0;
    for(int i = 0; i < amount; i++){
        sum += numbers[i];
    }

    return sum / amount;
}

int main(){
    int q;
    cout << "Type number of integers:" << endl;
    cin >> q;

    int numbers[q];

    for(int i = 0; i < q; i++){
        cout << "Type an integer value for number " << i+1 << ":" << endl;
        cin >> numbers[i];
    }

    cout << "The average is " << avg(numbers) << endl;

    return 0;
}

1 个答案:

答案 0 :(得分:1)

C ++中的标准数组不包含访问数组大小的方法,跟踪此大小的最佳方法是使用随数组大小更新的整数或尝试使用std :: array然后使用.size()方法。

在您的示例中,无论如何您都在使用固定大小的数组,因此您可能希望将q值存储为成员变量,并且包含数组大小。请注意,在您的示例中,由于q不是常数整数,因此代码无法正常工作。要声明不带常量整数的数组,您将需要使用指向数组第一个元素的指针,即:int * numbers = new int [q];。