求一个序列中最大的连续的子序列的和
#include<stdio.h>
int max_mixsum(int *arr, int num)
{
int Thissum = 0,maxSum = 0,i;
for (i = 0; i < 8; i++)
{
Thissum += arr[i];
if (Thissum>maxSum) //记录最大的子序列和
maxSum = Thissum;
else if (Thissum < 0) //如果这个子序列的和小于零,则这个子序列必定不在最大子序列和中的子序列中
Thissum = 0;
}
return maxSum;
}
int main()
{
int arr[10];
int num = 0,i=0;
for (i = 0; i < 8;i++)
scanf("%d", &arr[i]); //4 -3 5 -2 -1 2 6 -2
int answer=max_mixsum(arr, 8);
printf("%d", answer);
return 0;
}
利用注释试着走一遍流程