If All numbers are -ve

We will need store smallest number if all numbers are -ve

Hey @stathe
just tweak max_so_far to INT_MIN and it will work fine

int max_subarray_sum(int a[], int n){
int current_max = 0;
int max_so_far = INT_MIN;
for(int i=0; i<n; i++){
… current_max = max(current_max + a[i], a[i]);
… max_so_far = max(current_max, max_so_far);
}
return max_so_far;
}

Hey @stathe
Is this resolved ??