软件工程概论作业:返回一个整数数组中最大子数组的和
求所有子数组的和的最大值实验思路:
从第一个元素开始循环,再嵌套另外一个循环,从每一个元素开始,依次加上后边的元素。
当和大于最大值时,把和赋值给最大值,并记录此时首元素的下标和尾元素的下标
程序代码如下
int main()
{
int a[10];
int b[5];
int i,j,t;
printf("请输入10个数(相邻两个数字为一个新数组):\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
getchar();
b[0]=a[0]+a[1];
b[1]=a[2]+a[3];
b[2]=a[4]+a[5];
b[3]=a[6]+a[7];
b[4]=a[8]+a[9];
printf("\n");
for(j=0;j<4;j++)
{
if(b[j]>b[j+1]) {t=b[j];b[j]=b[j+1];b[j+1]=t;}
}
printf("字数组的和最大值为:\n");
//for(i=0;i<10;i++)
printf("%d",b[4]);
printf("\n");
getchar();
return 0;
}
{
int a[10];
int b[5];
int i,j,t;
printf("请输入10个数(相邻两个数字为一个新数组):\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
getchar();
b[0]=a[0]+a[1];
b[1]=a[2]+a[3];
b[2]=a[4]+a[5];
b[3]=a[6]+a[7];
b[4]=a[8]+a[9];
printf("\n");
for(j=0;j<4;j++)
{
if(b[j]>b[j+1]) {t=b[j];b[j]=b[j+1];b[j+1]=t;}
}
printf("字数组的和最大值为:\n");
//for(i=0;i<10;i++)
printf("%d",b[4]);
printf("\n");
getchar();
return 0;
}
运行结果如图
![](https://img2018.cnblogs.com/blog/1500044/201810/1500044-20181007231846842-672917318.png)