2017-05-14 8 views
-1

配列の最大値を見つける関数を作成しようとしていますが、何らかの理由で関数が配列を入力として受け取らない(これは非常に大きな数値、unsigned long intsと同様)。C++の配列引数が機能しない

#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

次のようにあなたのプロトタイプは、関数定義と一致する必要があります:

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; 
} 

最後には、あなたがから返された値を使用する必要があります。

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

を、以下のように、あなたの機能を圧縮することができ、メインに書くことができるように関数:

cout << findMax(test,6); 

funcのみです。

+0

はい、戻り値はどこかにあるはずですが、プロトタイプでした。コンパクトアドバイスありがとう – Pleedoh

0

findMaxのフォワード宣言を書きましたが、パラメータがないと主張しましたが、いくつかのパラメータでコールしました。

関連する問題