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上的題目進度緩慢,不開森。但是我還是會好好做題的,也得抽空複習一下,不然都忘光了。二 筆記 線性表 具有相同型別的資料元素的有限序列。多維 陣列 線性表中的資料元素可以是線性表,但所有元素的型別相同。廣義表 線性表中的資料元素可以是線性...