二维数组

求二维数组的最大和的子数组:

#include<iostream>
using namespace std;
int Sum(int i,int k,int j,int l,int a[3][4])
{
int sum=0;
for(int c=i;c<=k;c++)
{
for(int d=j;d<=l;d++)
{
sum=sum+a[c][d];
}
}
return sum;

}
void main()
{
int a[3][4]={
1,2,3,0,
0,-4,-5,-6,
7,0,-8,9};
int i,j,k,l;
int max,num;
max=a[0][0];
for(i=0;i<3;i++)
{
for(k=i;k<3;k++)
{
for(j=0;j<4;j++)
{
for(l=j;l<4;l++)
{
num=Sum(i,k,j,l,a);
cout<<num<<" ";
if(num>max)
max=num;
}
}
}
}
cout<<max;
}

这是算的3*4的 想算别的就把3 4改成对应的边长。

该程序是先把所有数组遍历一遍,输出所有子数组的和再输出最大的子数组。

                                                                                                                              杨理清,郭伟

原文地址:https://www.cnblogs.com/ylq20122878/p/3639482.html