1. 程式人生 > >返回一個整數組中的最大的子數組的和

返回一個整數組中的最大的子數組的和

第一次 com 兩個人 eight 負責 初始 src 函數 ofa

#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\n");
printf("\n");
printf("maximum array is=%d\n",max);
return 0;
}

設計思路:

從左面a0開始遍歷整個數組,一直到最右面結束,在這個過程最大的子數組和maxsofar。maxsofar初始化為零然後再求a0

到ai之間的最大子數組的和。用到了maxending_i=max((manending_i-1)+a[i],0)

任務分工:

何自強主要負責查資料編寫代碼

佟天宇主要負責代碼復審和代碼測試計劃

實驗結果截圖:

技術分享圖片

並肩合作:

技術分享圖片

總結:

此次任務是第一次以小組合作的方式進行的,通過本次實驗進一步掌握了隨機函數的使用方法,並且復習了C語言的一部分知識,關於數組的定義方法和應用。在本次實驗中,開始有許多錯誤,通過我們兩個人不斷地進行調整,最終圓滿完成任務,增進了同學之間的友誼。

返回一個整數組中的最大的子數組的和