c ++数组参数不起作用

时间:2017-05-14 00:36:19

标签: c++ arrays function parameters

我正在尝试创建一个找到任何数组的最大值的函数,并且由于某种原因,该函数不会将数组作为输入(对于一个运行非常大的数字的程序,对于unsigned长期投资。)

 #include <iostream>
using namespace std;

int findMax();

int main(){
int test[6] = {1,2,3,4,5,6};
findMax(test,6);//Says invalid arguments


return 0;
}

int findMax(int x[],unsigned long int size){
    unsigned long int max = 0;
    unsigned long int newmax = 0;
    for(int i = 0; i < size; i++ ){
        x[i] = newmax;
        if(newmax > max) max = newmax;
    }
    return max;
}

我做错了什么?另外,请随意判断其他任何错误。

2 个答案:

答案 0 :(得分:0)

当你为findMax编写前向声明时,你声称它没有参数,但是你用一些参数调用它。

答案 1 :(得分:0)

您的原型应与函数定义一致,如下所示:

int findMax(int [], unsigned long int );

另外,您可以按如下方式压缩您的功能:

int findMax(int x[],unsigned long int size)
{
    unsigned long int max = x[0];

    for(int i = 1; i < size; i++ )
        if(x[i] > max) max = x[i];

    return max;
}

最后,您需要使用函数返回的值,以便您可以在main中写入:

cout << findMax(test,6);

而不仅仅是功能。