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

题目:返回一个二维整数组中最大子数组的和

实验思路

根据老师上课给出的3*6的数据 我们决定设计一个3*6行的二维数组进行计算,依次进行比较 将最大子数组的和返回

代码

 1 #include <iostream.h>
 2 int main()
 3 {
 4     int a[3][6];//定义一个3*6的二维数组
 5     int max;
 6     int s;//求和
 7     int count;
 8     int b[3][7];
 9     cout<<"请输入二维数组(3*6)中的元素:"<<endl;
10     for(int i=0;i<3;i++)
11     {
12         for(int j=0;j<6;j++)
13         {
14             cin>>a[i][j];
15         }
16     }
17     for(i=0;i<3;i++)
18     {
19         count=0;
20         for(int j=0;j<6;j++)
21         {
22             s=0;
23             for(int l=0;l<6-j;l++)
24             {
25                 s=s+a[i][j+l];
26                 b[i][count+l]=s;
27             }
28             count=count+6-j;
29         }
30     }
31     //求最大数
32     max=b[0][0];
33     for(int j=0;j<7;j++)
34     {
35         for(i=0;i<3;i++)
36         {
37             s=0;
38             for(int r=0;r<3-i;r++)
39             {
40                 s=s+b[r+i][j];
41                 if(max<s)
42                 {
43                     max=s;
44                 }
45             }
46         }
47     }
48     cout<<"最大子数组为:"<<max<<endl;
49     cout<<endl;
50     return 0;
51 }

结果截图

二人结对:王驰 张宾

 

posted on 2018-10-21 13:11  &#127770;&#127770;&#127770;&#127773;&#127773;&#127  阅读(133)  评论(0编辑  收藏  举报

导航