C語言實現(xiàn)稀疏矩陣
更新時間:2017年05月20日 11:35:36 作者:Doublekai
這篇文章主要為大家詳細介紹了C語言實現(xiàn)稀疏矩陣的代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)稀疏矩陣的具體代碼,供大家參考,具體內(nèi)容如下
#include "stdio.h"
#define maxsize 10
typedef struct
{
int i,j; //非零元素的行、列
int v; //非零元素的值
}Triple;
typedef struct
{
Triple data[maxsize];
int m,n; //矩陣的行、列
}TSMarix;
InitTriple(TSMarix *M)
{
int i,j,k,v,t;
printf("請輸入稀疏矩陣非零元素的個數(shù):\n");
scanf("%d",&v);
for(k=1;k<=v;k++)
{
printf("請輸入第%d個元素行、列和值:",k);
scanf("%d%d%d",&i,&j,&t);
//儲存非零元素的下標(biāo)和值:
M->data[k].i=i;
M->data[k].j=j;
M->data[k].v=t;
}
}
void displayMatrix(TSMarix *M)
{
int i,j,p,q,k=1;
for(p=0;p<M->m;p++)
{
for(q=0;q<M->n;q++)
if(M->data[k].i==p&&M->data[k].j==q) //輸出非零元素
{
printf(" %d ",M->data[k].v);
k++;
}
else printf(" 0 ");
printf("\n");
}
}
void display(TSMarix *M)
{
int i,j,p,q;
printf("請輸入矩陣的行、列:\n");
scanf("%d%d",&i,&j);
M->m=i;M->n=j;
for(p=0;p<M->m;p++)
{
for(q=0;q<M->n;q++)
printf(" 0");
printf("\n");
}
}
main()
{
TSMarix M;
display(&M);
InitTriple(&M);
displayMatrix(&M);
}
效果圖:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實現(xiàn)
所謂的“復(fù)制控制”即通過這三個成員函數(shù)控制對象復(fù)制的過程,本文主要介紹了C++ 復(fù)制控制之復(fù)制構(gòu)造函數(shù)的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2023-11-11
VisualStudio2022打包項目文件為.exe安裝包
本文主要介紹了VisualStudio2022打包項目文件為.exe安裝包,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
深入解析C++中的構(gòu)造函數(shù)和析構(gòu)函數(shù)
析構(gòu)函數(shù):在撤銷對象占用的內(nèi)存之前,進行一些操作的函數(shù)。析構(gòu)函數(shù)不能被重載,只能有一個2013-09-09
數(shù)據(jù)結(jié)構(gòu)之堆的具體使用
本文主要介紹了數(shù)據(jù)結(jié)構(gòu)之堆的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

