返回一个整数组中的最大的子数组的和
Posted tty123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了返回一个整数组中的最大的子数组的和相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i,d;
int max=0;
int b=0;
int c [1200];
srand(time(NULL));
for(i=0;i<1200;i++)
{
d=rand()%2;
if(d==0)
{
c[i]=rand();
}
else
{
c[i]=-rand();
}
printf("%d ",c[i]);
}
for (i=0;i<1200;i++)
{
b+= c[i];
if(b<0)
b=0;
if(b>max)
max=b;
}
if(max==0)
{
max=c[0];
for(i=0;i<1200;i++)
{
if(max<c[i])
{
max=c[i];
}
}
}
if(max>2147483647)
printf("piease atart again
");
printf("
");
printf("maximum array is=%d
",max);
return 0;
}
设计思路:
从左面a0开始遍历整个数组,一直到最右面结束,在这个过程最大的子数组和maxsofar。maxsofar初始化为零然后再求a0
到ai之间的最大子数组的和。用到了maxending_i=max((manending_i-1)+a[i],0)
任务分工:
何自强主要负责查资料编写代码
佟天宇主要负责代码复审和代码测试计划
实验结果截图:
并肩合作:
总结:
此次任务是第一次以小组合作的方式进行的,通过本次实验进一步掌握了随机函数的使用方法,并且复习了C语言的一部分知识,关于数组的定义方法和应用。在本次实验中,开始有许多错误,通过我们两个人不断地进行调整,最终圆满完成任务,增进了同学之间的友谊。
以上是关于返回一个整数组中的最大的子数组的和的主要内容,如果未能解决你的问题,请参考以下文章