c語言稀疏矩陣的實現


#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("請輸入稀疏矩陣非零元素的個數:\n");
    scanf("%d",&v);
    for(k=1;k<=v;k++)
    {
        printf("請輸入第%d個元素行、列和值:",k);
        scanf("%d%d%d",&i,&j,&t);
        //儲存非零元素的下標和值: 
        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);
     
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM