61 稀疏矩陣

2021-10-03 09:13:47 字數 1135 閱讀 3882

61 稀疏矩陣

問題描述 :

今天明明學到了什麼叫做矩陣,但他發現要將乙個矩陣輸入進電腦是一件很麻煩的事。特別是有些矩陣很大,且大部分元素都是0,我們稱這類矩陣為稀疏矩陣。 於是,明明發明了一種簡單的表示方法,只指出矩陣中非零元素來表示該矩陣。

例如乙個矩陣:

0 0 0 5

2 0 0 0

0 1 0 0

0 0 4 0

可以表示成:

1 4 5

2 1 2

3 2 1

4 3 4

但明明又開始力不從心了,於是再一次想到了你…

明明的問題可以歸結為:試程式設計將乙個稀疏矩陣a轉換成只存放非零元素的矩陣b,即找出每個不是0的元素,按從左到右從上到下的順序,輸出其所在的行和列以及它的值。

輸入說明 :

你寫的程式要求從標準輸入裝置中讀入測試資料作為你所寫程式的輸入資料。

每組資料的第一行包括兩個整數,m和n,用空格隔開,表示矩陣大小為m * n(1 ≤ m, n ≤ 20),之後的m行每行有n個整數,也用空格隔開,整數的大小不會超出int型,且必有乙個數非零。行首行尾沒有空格,每組測試資料之間也沒有多餘空行。

輸出說明 :

對於每一組測試資料,你寫的程式要求計算出一組相應的運算結果,並將這一組運算結果作為你所寫程式的輸出資料依次寫入到標準輸出裝置中。對應每組輸入資料,用明明的矩陣表示法輸出該矩陣,即找出每個不是0的元素,按從左到右從上到下的順序,輸出其所在的行和列(行、列下標從1開始)以及它的值。其行首和行尾都沒有任何空格,每組運算結果與其後一組運算結果之間有乙個空行,最後一組運算結果後面沒有空行。 注:通常,顯示屏為標準輸出裝置。

輸入範例 :

4 40 0 0 5

2 0 0 0

0 1 0 0

0 0 4 0

2 11

1輸出範例 :

1 4 5

2 1 2

3 2 1

4 3 4

1 1 1

2 1 1

#include

intmain()

}for

(i=0

;i}printf

("\n");

}return0;

}

61 稀疏矩陣

61 稀疏矩陣 問題描述 今天明明學到了什麼叫做矩陣,但他發現要將乙個矩陣輸入進電腦是一件很麻煩的事。特別是有些矩陣很大,且大部分元素都是0,我們稱這類矩陣為稀疏矩陣。於是,明明發明了一種簡單的表示方法,只指出矩陣中非零元素來表示該矩陣。例如乙個矩陣 0 0 0 5 2 0 0 0 0 1 0 0 ...

基礎61 稀疏矩陣

61 稀疏矩陣 問題描述 今天明明學到了什麼叫做矩陣,但他發現要將乙個矩陣輸入進電腦是一件很麻煩的事。特別是有些矩陣很大,且大部分元素都是0,我們稱這類矩陣為稀疏矩陣。於是,明明發明了一種簡單的表示方法,只指出矩陣中非零元素來表示該矩陣。例如乙個矩陣 0 0 0 5 2 0 0 0 0 1 0 0 ...

特殊矩陣 稀疏矩陣

對於乙個m n的矩陣,設s為矩陣的元素總個數s m n,設t為矩陣中非零元素的個數,滿足t 稀疏矩陣的零元素非常多,且分布無規律,所以稀疏矩陣的壓縮儲存方法為 只儲存矩陣中的非零元素,按照三元組的形式儲存。三元組由非零元素,該元素行下標和該元素列下標三個資料構成,放在乙個列數為3的陣列中。儲存結構又...