Почему я не могу вызвать функцию max в C ++? - PullRequest
0 голосов
/ 02 октября 2018

После выделения массива в куче. Я пытаюсь сделать функцию max, чтобы найти наибольшее число в массиве с указателями, но это дает мне такую ​​ошибку: -In function 'int main ()': error:Макс, не может использоваться как функция.Вот код:

     #include<iostream>
     using namespace std;

    int max(int *v,int n){
       int i,max=0;
        for(i=1;i<=n;i++){
            if(*(v+i)>max)
                max=v[i];
        } 
        return max;
    }

     int main(){
     int *v,n,i;

  //read n    
     cout<<"Number of elements  ";
     cin>>n;

     v = new int[n];

    //read elements
    cout<<"Array Ellements:";
    for(i=1;i<=n;i++){
        cin>>v[i];
    }

    // output array elements   
    for(i=1;i<=n;i++){
        cout<<v[i];
        if(i<n)
        cout<<",";

    }
    cout<<endl;

     //max store the biggest number in the array
     int max;
     max = max(v,n);

        return 0;
    }

1 Ответ

0 голосов
/ 02 октября 2018

Вы не можете иметь функцию и переменную с одним и тем же именем в одной области действия и использовать их оба.Так что это никогда не может работать (как вы обнаружили)

int max;
max = max(v,n); // the word 'max' now refers to the variable called 'max' not the function

Do

int maxValue = max(v,n);
...