資料結構實驗七 多維陣列和矩陣

2021-10-23 06:35:30 字數 2098 閱讀 2762

1、實驗目的:

(1)理解陣列的特特性和二維陣列的儲存方式。

(2)了解各種特殊矩陣的壓縮儲存方法。

2、實驗環境與裝置:

已安裝visual studio 2010(或其以上版本)整合開發環境的計算機。

3、實驗原理:

(1)三角矩陣的壓縮儲存。

(2)矩陣的求和運算。

4、實驗內容:

矩陣運算:根據兩個4階三角矩陣的壓縮儲存,計算兩個矩陣相加之和,並將結果存入乙個新的矩陣c中。

假設兩種情況:兩個上(下)三角矩陣求和;

乙個上(下)三角和乙個下(上)三角求和。

(1)如果是兩個上(下)三角矩陣求和,依然使用壓縮儲存求和即可;

(2)如果是乙個上(下)三角矩陣和乙個下(上)三角矩陣求和,可將兩矩陣復原再求和。

5、實驗考核:

(1)完成紙質版實驗報告

(2)提交電子版作業

6、執行結果示例如下:

原始碼

#include

#include

#define m 4

#define n 4

/*上三角矩陣;

k=(n+(n-i+1))*i/2+(j-i); (i<=j)

k=n*(n+1)/2; (i>j)

*//*

下三角矩陣

k=i*(i+1)/2+j; (i>=j)

k=n*(n+1)/2; (ivoid

input

(int a[4]

[4])

//輸入矩陣 }}

void

yasuo_xia

(int z[9]

,int a[4]

[4])

//壓縮下三角矩陣

else}}

}void

yasuo_shang

(int z[11]

,int a[4]

[4])

//壓縮上三角矩陣

else}}

}void

array1_add

(int a[11]

,int b[11]

,int c[11]

)//把陣列a 陣列b 相加後結果放入矩陣c中

}void

array2_add

(int a[4]

[4],

int b[4]

[4],

int c[4]

[4])

//把矩陣a 矩陣b 相加後放入矩陣c中。 }}

void

print

(int a[4]

[4])

//列印輸出矩陣

printf

("\n");

}}//列印輸出壓縮矩陣

void

print_l

(int a[11]

)printf

("\n");

}void

xia_huanyuan

(int m[4]

[4],

int n[11]

)//把壓縮矩陣還原為下三角矩陣

else}}

}void

shang_huanyuan

(int m[4]

[4],

int n[11]

)//把壓縮矩陣還原為上三角矩陣

資料結構實驗 陣列矩陣操作

害,怎麼有種寫c語言作業的感覺 大一學的c語言很多都已經忘了 矩陣的轉置,乘法等基本操作。可以用普通矩陣,也可以用三元組 include 轉置 voidf1 getchar printf 以下是轉置後的矩陣 n for int i 0 i printf n 乘法 voidf2 getchar pri...

資料結構 多維陣列

關於多維資料的儲存有一些公式需要記憶,其實可以很容易推理出來,但是感覺有時候腦子不知道怎麼那麼笨,容易一下子就走神,記錄一下.特殊矩陣 所謂特殊矩陣是指非零元素或零元素的分布有一定規律的矩陣。常見的有對稱矩陣 三角矩陣和對角矩陣等。元素aij的存放位置 aij元素前有i行 從第0行到第i 1行 一共...

資料結構 五) 多維陣列

一 總結 對這一部分還是很生疏,不太會做,而且openjudge上的題目進度緩慢,不開森。但是我還是會好好做題的,也得抽空複習一下,不然都忘光了。二 筆記 線性表 具有相同型別的資料元素的有限序列。多維 陣列 線性表中的資料元素可以是線性表,但所有元素的型別相同。廣義表 線性表中的資料元素可以是線性...