多维数组的最大子数组和的求值
为了求多维数组的最大子数组和,我们先用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 }
多维数组类推

浙公网安备 33010602011771号