第 4 章 多維陣列與矩陣 學習報告

2022-06-10 05:33:08 字數 3752 閱讀 5040

(4.1)節:順時針列印二維陣列

1、題幹:構建二維陣列,按照順時針的方向列印

2、解題思路:不斷對陣列的外圍進行列印,外圍不斷變小。

3、關鍵**:

int h=0,l=1;//最大行列座標 ,根據實際定值

int h=0,l=0;//起始行列座標

int i=h,j=l;

while(l<=l||h<=h)

j--;h++;i=h;

cout

i--;l--;j=l;

cout=l&&h<=h)//列印最後一行

j++;h--; i=h;

cout=h)//列印第一列

i++;l++;j=l;

cout

(4.2)節:0所在的行列清0

1、題幹:

2、解答思路:要避免邊掃瞄邊清0,要先掃瞄後記錄0所在的行和列,再清0

3、關鍵**:

struct str

a[10];

int k=0;

int t[5][5]=;

void out(int h,int l)

//輸出原來陣列

for(int i=0;i<=l;i++)

for(int j=0;j<=h;j++)

if(t[j][i]==0)

//記錄0的位置

for(int i=0;ifor(int j=0;j<=h;j++)

t[a[i].l][j]=0;///////////////列0

for(int i=0;ifor(int j=0;j<=l;j++)

t[j][a[i].h]=0;//////////////行0

cout

//輸出新的陣列

}

(4.3)節:z形列印二維陣列

1、題幹:

2、解答思路:上坡的,斜上斜下不可以走,右可以就走右,不行就走下,下坡的,斜上斜下不可以,下可以的就走下,不行就走右,

3、關鍵**:

int num [3][5]=,

,

,

};

int h=2,l=4;//邊界

int h=0,l=0;//所在位置

int t=1;//判斷上坡還是上坡

while(true)

else if(h-1<0&&l+1<=l&&t==1)//右

else if(h-1<0&&l+1>l&&t==1)

//下

//下坡

else if(h+1<=h&&l-1>=0&&t==0)//下斜

else if(l-1<0&&h+1<=h&&t==0) //下

else if(h+1>h&&l+1<=l&&t==0)//右

else

break;//到達終點

}

(4.4)節:邊界為1的最大矩陣

(4.5)節:邊界為1的最大矩陣優化(上)

(4.6)節:邊界為1的最大矩陣優化(下)

1、題幹:

(4.7)節 子陣列最大累加和

1、題幹:

2、解答思路:題意要求我們找出和最大的子陣列,我們可以讓前面相加,如果前面和小於0,那麼前面就可以作為乙個邊界,然後找出最大的sun

3、關鍵**:

int sun=a[0];

int max=a[0];

int  l=0,r=0;

for(int i=1;i<10;i++)

if(sun>=0)

sun=sun+a[i];

else

if(sun>max)

{max=sun;

r=i;

(4.9)節 矩陣運算

第4章 陣列

1 陣列儲存的是相同型別的一組元素 double arr 2 陣列的定義型別可以是任意型別,包含基本型別或引用型別 string arr person arr int arr person arr 3 陣列屬於引用型別,引用儲存在棧中,值儲存在堆中,又稱為物件。4 陣列的成員如果不賦值,有預設值。b...

C Primer 第3章 3 6 多維陣列

1.多維陣列其實就是陣列中巢狀陣列,陣列的元素還是陣列,這樣巢狀起來就沒有限制,一般稱二維陣列的第一維叫做行,第二位叫做列,其實學 int a 3 4 int a 3 4 2 int a 2 2 2 2 俄羅斯套娃,可以巢狀很多層,2.使用初始化列表對多維陣列進行初始化,如果初始化列表不全則後面的元...

演算法第4章實踐報告

實踐題目 程式儲存問題 問題描述 設有n 個程式要存放在長度為l的磁帶上。程式i存放在磁帶上的長度是 li,1 i n。程式儲存問題要求確定這n 個程式在磁帶上的乙個儲存方案,使得能夠在磁帶上儲存盡可能多的程式。對於給定的n個程式存放在磁帶上的長度,計算磁帶上最多可以儲存的程式數。第一行是2 個正整...