Прежде всего обратите внимание на предупреждения компилятора, ваша рекурсивная функция не возвращает значение при вводе части else.
Теперь, во-вторых, пожалуйста, не используйте такие вещи, как * (arr + n), которые трудно читать, вместо этого используйте arr [n], в то время как просто предпочтение при использовании массивов в качестве аргументов функции использует int arr [] для вызовите функцию вместо int * arr (в первой версии ясно, что вы должны передать массив).
Третье - назвать вещи вместо int recursive
описать, что делает функция, например int maxElemRecursive
Таким образом, ваша рекурсивная функция должна выглядеть примерно так:
int maxElemRecursive(int arr[],int n,int largest)
{
if(n==0) return largest;
if(arr[n] > largest) // No need for else because return largest; would've returned value;
{
largest = arr[n];
}
return maxElemRecursive(arr,n-1,largest); // You have to return the value of the function.
// You still pass the array with just arr.
}