將稀疏矩陣a的非零元以行序為主序的順序存於一維陣列v中,並用二維陣列b表示a中的相應元素是否為零元素,例如:
[ 150
0220−
6009
000]
(矩陣a)
\left[ \begin 15 & 0 & 0 & 22 \\ 0 & -6 & 0 & 0 \\ 9 & 0 & 0 & 0 \\ \end \right] \tag
⎣⎡150
90−
600
002
200
⎦⎤(
矩陣a)
可用 v = (15 , 22 , -6 , 9)
和[ 10
0101
0010
00
](矩陣b)
\left[ \begin 1&0&0&1\\ 0&1&0&0\\ 1&0&0&0\\ \end \right] \tag
⎣⎡101
010
000
100
⎦⎤
(矩陣b
)程式設計實現上述表示法的矩陣加法運算。
首先輸入兩個整數n和m,為矩陣維數,然後輸入兩個矩陣的值b1、v1和b2、v2。
輸出矩陣運算結果b、v。
3 41 0 0 1
0 1 0 0
1 0 0 0
15 22 -6 9
0 1 1 0
0 1 1 0
1 0 0 1
3 2 6 2 -5 8
1 1 1 1
0 0 1 0
1 0 0 1
15 3 2 22 4 8
定義矩陣結構體,成員變數包括行數、列數、有效元素個數、單位矩陣、有效元素
#include
#include
#include
#define maxsize 10
//規定矩陣行數和列數最大值
#define error -1
//定義error巨集名
#define ok 1
//定義ok巨集名
typedef
int status;
//重新命名int型別
typedef
struct matrix
matrix;
status creatmatrix (matrix *m ,
int i ,
int j)
;//建立矩陣
status addmatrix (matrix m, matrix n, matrix &q)
;//矩陣加法運算
intmain()
for(r=
0; r)printf
("%d "
,q.data[r]);
//遍歷輸出有效元素
return0;
}status creatmatrix (matrix *m ,
int i ,
int j)
m->data =
(int*)
malloc
(cont*
sizeof
(int))
;if(!m->data)
return error;
printf
("請輸入有效值:\n");
for(r=
0; r)//迴圈輸入有效元素
scanf
("%d"
,&m->data[r]);
m->i = i;
m->j = j;
m->tn = cont;
return ok;
}status addmatrix (matrix m, matrix n, matrix &q)
}for
(p=0
; p)for
(q=0
; qfor(m=
0; m)for
(n=0
; n)else
//如果相加值為0
q.range[m]
[n]=0;
}return ok;
}
編寫**過程注意細節,特別是迴圈編寫
先利用printf函式從主函式開始進行檢查,找到問題所在,再利用除錯,找到具體問題所在
當想要利用函式改變傳入引數的值,需要傳入位址,則可以選擇
1. status creatmatrix ( matrix &m ,
int i ,
int j )
;//呼叫時
creatmatrix ( m , i , j )
;2. status creatmatrix ( matrix *m ,
int i ,
int j )
;//呼叫時
creatmatrix (
&m , i , j )
;
稀疏矩陣加法運算 線性代數 矩陣基本運算
在本文中,我們將介紹矩陣的大部分基本運算,依次是矩陣的加減法 矩陣的標量乘法 矩陣與矩陣的乘法 求轉置矩陣,以及深入了解矩陣的行列式運算。本文將不會涉及逆矩陣 矩陣的秩等概念,將來再 它們。矩陣的加法與減法運算將接收兩個矩陣作為輸入,並輸出乙個新的矩陣。矩陣的加法和減法都是在分量級別上進行的,因此要...
利用Python進行矩陣加法運算 日常記錄
兩個n行n列的矩陣進行加法運算。encoding utf 8 n int input please input the dimense 確定矩陣維度 x y r 給矩陣x賦值 for i in range n for j in range n print x 給矩陣y賦值 for i in rang...
08 矩陣加法
總時間限制 1000ms 記憶體限制 65536kb 描述輸入兩個n行m列的矩陣a和b,輸出它們的和a b。輸入第一行包含兩個整數n和m,表示矩陣的行數和列數。1 n 100,1 m 100。接下來n行,每行m個整數,表示矩陣a的元素。接下來n行,每行m個整數,表示矩陣b的元素。相鄰兩個整數之間用單...