上课结对测试项目(求整数数组的子数组之和的最大值)(兰梦,刘佳琪)

一、测试题目

        找出一个整数数组中子数组之和的最大值(子数组定义,相邻的各个元素组成的数组)

二、题目分析

     上课时的思路

将数组从第一个开始分别求相邻2、3、4...到length个数的和,然后再依次从2、3...开始就各子数组的和,

将各个子数组数组和放到另一数组里,求最大值并返回

上课结对测试项目(求整数数组的子数组之和的最大值)(兰梦,刘佳琪)上课结对测试项目(求整数数组的子数组之和的最大值)(兰梦,刘佳琪)

三、程序代码

#include<stdio.h>
#define N  100
int k=0;
int bigest(int a[],int length)
{
    int i;
    int j;
    int b[1000];
    if(length==0||a==NULL)
    {
        printf("输入数组为空!");
        return 0;
    }
    for(i=1;i<=length;i++)
    {
        b[k]=a[i-1];
        for(j=i;j<=length;j++)
        {    k++;
             b[k]=b[k-1]+a[j];
            
        }
    }
    printf("各子数组的和为:
");
    for(i=0;i<k-1;i++)
    {    
        printf("%d ",b[i]);
    }
    int max=b[0];
   for(i=0;i<k-1;i++)
    {
        if(b[i]>max)
        {max=b[i];
        }
    }
    return max;
    
}    
int main()
{    
    int i;
    int max;
    int length;
    int a[N];
    printf("请输入数组元素个数:");
    scanf("%d",&length);
    printf("请输入数组元素:
");
    for(i=0;i<length;i++)
        scanf("%d",&a[i]);
    max=bigest(a,length);
          printf("
最大子数组和为%d ",max);
    return 0;
}

四、运行截图

上课结对测试项目(求整数数组的子数组之和的最大值)(兰梦,刘佳琪)

上课结对测试项目(求整数数组的子数组之和的最大值)(兰梦,刘佳琪)