返回一个整数数组中最大子数组的和
结对组员:闫立新 苏海岩
核心思想:寻找所有可能的数组的和。
设置两个for循环,每一次都加上后面的数。
这样通过遍历,把所有可能的数组的和都计算出来。
利用max变量保存,只要找到了最大的值就替换,每次都进行更新。
在最外层的一次循坏结束后要使sum的值变为0以便不会影响后面一次循环的结果。
此方法想法简单,实现也比较容易,循环嵌套即可。
下面为代码部分:
#include<stdio.h> int Max(int a[],int n) { int max=-1000; int sum; for (int i = 0;i < n;i++) { sum = 0; for (int j=i;j<n;j++) { sum=sum+a[j]; if (sum>max) { max=sum; } } } return max; } int main() { int a[5],n,i,c; n=5; printf("输入5个数:\n"); for(i=0;i<5;i++) { scanf("%d",&a[i]); } c=Max(a,n); printf("%d\n",c); return 0; }
运行结果: