伊莉討論區
標題:
為什麼後來會變總加起來
[打印本頁]
作者:
sh10523
時間:
2012-1-3 06:54 PM
標題:
為什麼後來會變總加起來
本帖最後由 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;
}
複製代碼
作者:
runeray2000
時間:
2012-1-3 08:18 PM
提示:
作者被禁止或刪除 內容自動屏蔽
作者:
sh10523
時間:
2012-1-4 04:08 PM
可是她給的範例答案卻是
輸入隨機16數字
0 -2 -7 0 9 2 7 0 9 2 -6 2 -4 1 -1 8 -2
0 -2 -7 0
9 2 -6 2
-4 1-4 1
-1 8 0 -2
輸出
9 2
-4 1
-1 8
Maximum sum: 15
看不懂好複雜的道理
歡迎光臨 伊莉討論區 (http://a401.file-static.com/)
Powered by Discuz!