我正在尝试创建一个找到任何数组的最大值的函数,并且由于某种原因,该函数不会将数组作为输入(对于一个运行非常大的数字的程序,对于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;
}
我做错了什么?另外,请随意判断其他任何错误。
答案 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);
而不仅仅是功能。