码迷,mamicode.com
首页 > 编程语言 > 详细

返回一个整数数组中最大子数组的和

时间:2018-10-07 22:30:14      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:设计思想   分享图片   clu   三次   运行结果截图   图片   顺序   \n   代码   

设计思想:

输入一个长度为5的数组,第一次用每2个数按顺序组成4个子数组,对其求和;第二次用每3个数按顺序组成3个子数组,对其求和;第三次用每4个数按顺序组成2个子数组,对其求和;第四次用5个数求整个数组的和;然后求所有子数组和的最大值。

源程序代码:

#include<stdio.h>
int main()
{
int a[5],sum=0,sum5[5],sum4[4],sum3[3],sum2[2],sum1,m,n,temp,max[5];
for(m=0;m<5;m++)
{
scanf("%d",&a[m]);
}
for(m=0;m<5;m++)
{
sum+=a[m];
sum5[m]=sum;
sum=0;
}
for(m=0;m<4;m++)
{
sum=sum+a[m]+a[m+1];
sum4[m]=sum;
sum=0;
}
for(m=0;m<3;m++)
{
sum=sum+a[m]+a[m+1]+a[m+2];
sum3[m]=sum;
sum=0;
}
for(m=0;m<2;m++)
{
sum=sum+a[m]+a[m+1]+a[m+2]+a[m+3];
sum2[m]=sum;
sum=0;
}
sum1=a[0]+a[1]+a[2]+a[3]+a[4];
for(m=0;m<5;m++)
{
for(n=m+1;n<5;n++)
{
if(sum5[m]<sum5[n])
{
temp=sum5[m];
sum5[m]=sum5[n];
sum5[n]=temp;
}
}
max[0]=sum5[0];
}
for(m=0;m<4;m++)
{
for(n=m+1;n<4;n++)
{
if(sum4[m]<sum4[n])
{
temp=sum4[m];
sum4[m]=sum4[n];
sum4[n]=temp;
}
}
max[1]=sum4[0];
}
for(m=0;m<3;m++)
{
for(n=m+1;n<3;n++)
{
if(sum3[m]<sum3[n])
{
temp=sum3[m];
sum3[m]=sum3[n];
sum3[n]=temp;
}
}
max[2]=sum3[0];
}
for(m=0;m<2;m++)
{
for(n=m+1;n<2;n++)
{
if(sum2[m]<sum2[n])
{
temp=sum2[m];
sum2[m]=sum2[n];
sum2[n]=temp;
}
}
max[3]=sum2[0];
}
max[4]=sum1;
for(m=0;m<5;m++)
{
for(n=m+1;n<5;n++)
{
if(max[m]<max[n])
{
temp=max[m];
max[m]=max[n];
max[n]=temp;
}
}}
printf("%d\n",max[0]);
}

运行结果截图:

技术分享图片

 

返回一个整数数组中最大子数组的和

标签:设计思想   分享图片   clu   三次   运行结果截图   图片   顺序   \n   代码   

原文地址:https://www.cnblogs.com/zoulan/p/9751778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!