Hello I'm struggling a little bit, I can't really figure out how to initialize my *min *max and *sum variables so that it doesn't keep reinitializing in the loop
I did this and I'd like to get help regarding what changes I should make
void min_max_sum_rec(int arr[],int length,int *min,int *max,int *sum){
if(length==1){
return;
}
else{
if(arr[0]<*min){
*min = arr[0];
}
if(arr[0]>*max){
*max = arr[0];
}
sum+=arr[0];
}
min_max_sum_rec(arr+1,length-1,min,max,sum);
}
for reference my professor did this:
void min_max_sum(int arr[],int length,int *min,int *max,int *sum){
if(length== 1){
*min=*max=*sum=*arr;
return;
}
min_max_sum(arr+1,length-1,min,max,sum);
*sum+=arr[0];
*min = (*min<arr[0]?*min:arr[0]);
*max = (*max>arr[0]?*max:arr[0]);
}
but I don't really understand since *min *sum and *max are not initialized and also can't understand the if statement.
Wouldn't it make it so that when we only have an array with one integer *max *min and *sum would have the same value so all we did before would be meaningless ?
min_max_sum_rec(array, length, INT_MAX, INT_MIN, 0);