多维数组的最大子数组和的求值

为了求多维数组的最大子数组和,我们先用3*3的数组来代表多维数组,其编码情况如下:

 1 #include<iostream.h>
 2 void main()
 3 {
 4     int a[3][3]={{1,-2,3},{-4,-5,6},{7-8,9}};
 5     int m[3][6];
 6     for(int i=0;i<3;i++)
 7         for(int j=0;j<6;j++)
 8             m[i][j]=0;
 9     for(i=0;i<3;i++)
10     {
11         int x=0;
12         for(int b=1;b<=3;b++)
13         {
14             for(int j=0;j<=3-b;j++)
15             {
16                 int c=0;
17                 while(c!=b)
18                 {
19                     m[i][x]=a[i][j]+m[i][x];
20                     c++;
21                 }
22                 x++;
23             }
24         }
25     }
26     int max=m[0][0];
27     for(i=0;i<3;i++)
28     {
29         for(int j=0;j<6;j++)
30         {
31             if(max<m[i][j])
32                 max=m[i][j];
33         }
34     }
35     for(int j=0;j<6;j++)
36     {
37         int s=0;
38         for(i=0;i<3;i++)
39         {
40             s=s+m[i][j];
41         }
42         if(max<s)
43             max=s;
44     }
45     cout<<"最大子数组的和是:"<<max<<endl;
46 }

多维数组类推

posted @ 2014-04-01 12:46  杨康133512  阅读(187)  评论(0)    收藏  举报