c++ - 如何将函数的整数大小与数组的实际大小联系起来? C++

标签 c++ arrays sum

我正在尝试编写一个计算数组总和的函数,但是当我声明 int size = 0; , 函数运行 0 次因为 i=0 ;我

int arraChec(int arra[]) {

    int size = 0;
    int sum = 0;

    for (int i = 0; i < size; i++) {
        sum = sum + arra[i];
    }
    return sum;
}


int main() {

    int arra1[7] = { 2,3,5,7,8,9,1 };

    cout << arraChec(arra1) << endl;

    system("pause");
}

最佳答案

传入数组大小作为参数:

#include <iostream>
int arraChec(int arra[], int size) {
    int sum = 0;
    for (int i = 0; i < size; i++) {
        sum += arra[i];
    }
    return sum;
}
int main() {
    int arra1[7] = { 2, 3, 5, 7, 8, 9, 1 };
    std::cout << arraChec(arra1, 7) << std::endl;
}

或者使用std::vector:

#include <iostream>
#include <vector>

int arraChec(std::vector<int>& arra) {
    int sum = 0;
    for (int i = 0; i < arra.size(); i++) {
        sum += arra[i];
    }
    return sum;
}

int main() {
    std::vector<int> arra1 = { 2, 3, 5, 7, 8, 9, 1 };
    std::cout << arraChec(arra1) << std::endl;
}

如果您指的是某些 C 风格的 (sizeof(arra)/sizeof(*arra)) 构造,我建议您不要使用它。

关于c++ - 如何将函数的整数大小与数组的实际大小联系起来? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46742805/

相关文章:

c++ - boost socket 的函数在哪里读取

c++ - 使用户无法访问资源

mysql - 对具有相同 id 的行求和 (mysql)

algorithm - 除和或除差的最精确的数值方法是什么?

python - CMake 不链接 Python

c++ - 如何只替换 CString 中第一次出现的字符?

arrays - PowerShell 中有函数指针或函数数组吗?

javascript - 根据子数组的位置和数组的第一个元素计算子数组元素的总和

javascript - 如何比较两个对象并获得它们差异的键值对?

mysql - 如何连续总结过去30天?