寻找最大子数组

小组成员:贾川     李驭龙
算法设计思想:
随机输入一个个数为10的数组,然后定义一个函数,它的作用是讲这个数组的每个子数组都计算出来存入另一个临时数组,再把原来的数组接着插入到这个临时数组的后面,在这个临时数组中找到子数组和的最大值。



源程序代码如下:








#include "stdafx.h" #include "stdio.h" int A(int a[])//此函数的作用是计算出每个子数组的和进行比较,最后返回最大值max { int i,j,sum,max,m=0; int b[55]; for(i=0;i<9;i++) { sum=a[i]; for(j=i+1;j<10;j++) { sum=sum+a[j]; b[m++]=sum; } } m=45; for(i=0;i<10;i++) { b[m++]=a[i]; } max=b[0]; for(i=0;i<55;i++) { if(max<=b[i]) { max=b[i]; } } return max; } int main(int argc, char* argv[]) { int max; printf("please input 10 numbers: "); int m[10]; int i; for(i=0;i<10;i++) { scanf("%d",&m[i]); } max=A(m); printf("最大子数组和为: %d ",max); return 0; }

下面是几种不同情况的输出结果:

设想计算草稿: 

 

 

原文地址:https://www.cnblogs.com/ID-q-han/p/3591641.html