- 最後登錄
- 2024-3-14
- 在線時間
- 56 小時
- 註冊時間
- 2009-1-20
- 閱讀權限
- 20
- 精華
- 0
- UID
- 5690940
- 帖子
- 111
- 積分
- 25 點
- 潛水值
- 3853 米
| 本帖最後由 goodbye_mylove 於 2012-1-3 09:20 PM 編輯
想請問各位大大我有一樣作業題目是要問題:今給一個4*4的二維陣列,請
1. 計算並輸出此陣列的所有子矩形列中具有最大元素和之子矩形陣列,以及
2.該子矩形陣列的元素和可是我打出來他卻是整個加總,要如何修改呢?- #include <iostream>
- using namespace std;
- int main()
- {
- int a[4][4];
- int msx1,msy1,msx2,msy2; //max sub array x1,x2,y1,y2
- int sx1,sx2,sy1,sy2; //sub array x1,x2,y1,y2
- int i,j;
- int b,c;
- int maxsum,arraysum;
- cout<<"輸入16個整數:";
- cin>>a[0][0]>>a[0][1]>>a[0][2]>>a[0][3]
- >>a[1][0]>>a[1][1]>>a[1][2]>>a[1][3]
- >>a[2][0]>>a[2][1]>>a[2][2]>>a[2][3]
- >>a[3][0]>>a[3][1]>>a[3][2]>>a[3][3];
- maxsum=a[0][0];
- msx1=msx2=msy1=msy2=0;
- for(sx1=0;sx1<4;sx1++)
- for(sx2=sx1;sx2<4;sx2++)
- for(sy1=0;sy1<4;sy1++)
- for(sy2=sy1;sy2<4;sy2++)
- {
- arraysum=0;
- for(i=sx1;i<=sx2;i++)
- for(j=sy1;j<=sy2;j++)
- arraysum+=a[i][j];
- if(maxsum<arraysum)
- {
- msx1=sx1;
- msx2=sx2;
- msy1=sy1;
- msy2=sy2;
- maxsum=arraysum;
- }
- }
- for(b=msx1;b<=msx2;b++){ //先印出4x4內容看是否正確
- for(c=msy1;c<=msy2;c++){
- cout<<" "<<a[b][c];
- }
- cout << endl;
- }
- cout<<"最大總和:"<<maxsum;
- system("PAUSE");
- return 0;
- }
複製代碼 ... |
|