第九周 對稱矩陣壓縮儲存的實現和應用

2021-07-24 08:32:20 字數 1629 閱讀 7605

問題描述:設計演算法,實現兩個用壓縮形式

*/

matrix.h:

#include #include #define n 4 //定義矩陣階數為4

void init(int *&b); //為n階對稱矩陣初始化儲存資料的一維陣列b

int value(int b, int i, int j); //返回儲存在b[m]中,對應二維陣列a[i][j]的值

void assign(int b, int e, int i, int j); //將e賦值給對應二維陣列元素a[i][j],要儲存到b[m]中

void disp1(int b); //輸出壓縮儲存在b中的對稱矩陣

void destroy(int b); //銷毀儲存空間

void matrixadd(int a,int b,int c[n]); //對稱矩陣相加

void matrixmul(int a,int b,int c[n]); //對稱矩陣相乘

void disp2(int c[n]); //輸出對稱矩陣相加或相乘的結果

matrix.cpp:

#include "matrix.h"

void init(int *&b) //為n階對稱矩陣初始化儲存資料的一維陣列b

int value(int b, int i, int j) //返回儲存在b[m]中,對應二維陣列a[i][j]的值

void assign(int b, int e, int i, int j) //將e賦值給對應二維陣列元素a[i][j],要儲存到b[m]中

void disp1(int b) //輸出壓縮儲存在b中的對稱矩陣

{ int i,j;

for(i=0;i#include "matrix.h"

int main()

{ int i,j,num;

int *a,*b; //定義兩對稱矩陣

int c1[n][n],c2[n][n]; //c1--對稱矩陣相加結果 c2--對稱矩陣相乘結果

init(a); //初始化,一次分配空間

init(b);

while(1)

{printf("請輸入對稱矩陣a(只需要輸入下三角部分即可):\n");

知識點總結:

對稱矩陣的基本運算

心得體會:

在(1)的基礎上,此問題容易解決。不過需要注意的是,兩矩陣相乘不是單純的兩矩陣同一位置上兩個元素相乘。

第九周 對稱矩陣壓縮儲存的實現

all right reserved.date 2015年10月26日 版本 v1.0.1 作業系統 xp 執行環境 vc6.0 問題描述 對稱矩陣壓縮儲存的實現 用壓縮形式儲存對稱矩陣,實現下面的操作並測試 void init int b 為n階對稱矩陣初始化儲存資料的一維陣列b int valu...

第九周 對稱矩陣壓縮儲存的實現與應用

問題描述 對稱矩陣壓縮儲存的實現與應用。輸入 第n行的第n個數值。輸出 對陣矩陣。原始檔 include head.h void init int b int value int b,int i,int j void assign int b,int e,int i,int j void disp ...

第九周專案2 對稱矩陣壓縮儲存的實現與應用(1)

all right reserved.檔名稱 test.cpp 完成日期 2015年10月30日 版本號 v1.0 問題描述 用壓縮形式儲存對稱矩陣,實現下面的操作並測試 void init int b 為n階對稱矩陣初始化儲存資料的一維陣列b int value int b,int i,int j...