返回一個二維數組中的最大子數組

1、實驗題目ios

     返回一個二維數組中的最大子數組編程

2、實驗思路   數組

     因爲咱們的能力有限,因此咱們就設計了一個3行2列的二維數組。     如今以一個例子來講明一下咱們的思想:spa

    例如:輸入的二維數組是 -1  2設計

                                     3  4       code

                                    -5  9blog

    (1)首先計算出第一行中有關-1的全部的子數組,而後計算出有關2的子數組,一樣的道理能夠計算第二行和第三行中的字數組。   ci

    (2)把上面計算出來的有關行中的子數組放在一個  b[3][3]即爲 -1  1  2        的數組中。  input

                                                                                         3  7  4                       io

                                                                                       -5  4  9    

     (3)再求b[3][3]中的子數組的最大值,此次應該是按列來求。首先計算第一列中的子數組中的最大的數,先計算-1,而後計算-1+3,而後計算-1+3+5,求出最大的來,再3+(-5)和max比較大小,求出最大的,再(-5)和max比較大小。同理求第2、三列。便可得出最大的來。

3、代碼

 1 //製做人:信1201-2班 司新紅  萬彤
 2 #include <iostream.h>
 3 int main()
 4 {
 5     int a[3][2];//定義一個3*2的二維數組
 6     int max;
 7     int s;//求和
 8     int count;
 9     int b[3][3];
10     cout<<"請輸入二維數組(3*2)中的元素:"<<endl;
11     for(int i=0;i<3;i++)
12     {
13         for(int j=0;j<2;j++)
14         {
15             cin>>a[i][j];
16         }
17     }
18     for(i=0;i<3;i++)
19     {
20         count=0;
21         for(int j=0;j<2;j++)
22         {
23             s=0;
24             for(int l=0;l<2-j;l++)
25             {
26                 s=s+a[i][j+l];
27                 b[i][count+l]=s;
28             }
29             count=count+2-j;
30         }
31     }
32     //求最大數
33     max=b[0][0];
34     for(int j=0;j<3;j++)
35     {
36         for(i=0;i<3;i++)
37         {
38             s=0;
39             for(int r=0;r<3-i;r++)
40             {
41                 s=s+b[r+i][j];
42                 if(max<s)
43                 {
44                     max=s;
45                 }
46             }
47         }
48     }
49     cout<<"最大子數組爲:"<<max<<endl;
50     cout<<endl;
51     return 0;
52 }

 

4、運行結果

5、心得體會   

     此次的程序對於咱們來講有一點的難度,因爲以前咱們兩個編程都很差,因此好多的都是現

從書上學的。還有就是我倆剛看到這個代碼的時候,根本一點思路都沒有,並且看到題目中要求

把數組放在一個叫input.txt的文件中,我倆更是什麼都不會。因此最後就選擇了手動輸入一個二

維數組,並且二維數組還有必定的限制,採用了3行2列,由於實在沒有相處來如何自定義行和列

數。再比較大小的時候,因爲是二維數組,不像一維數組那樣簡單,因此開始沒有一點思路,比

較大小那,就採用了同窗的一點思想。經過我倆一塊兒編程,想如何作,我感受收穫仍是挺多的,

能夠互補,在編程中也找到了一點點的成就感。

 

我和個人小夥伴

相關文章
相關標籤/搜索