JD의 블로그

5. Matrices[1] - Diagonal Matrix 본문

-프로그래밍 언어/알고리즘&자료구조

5. Matrices[1] - Diagonal Matrix

GDong 2019. 9. 19. 00:12

1. Diagnonal Matrix

Most of the numbers are zeros and only the elements in their diagonal are non zeros

M[i, j] = 0 if i!=j

we want to store only non-zero elements 

 A[5] = {3, 7 , 4 , 9, 6}   [5x5] diagonal matrix

M[i, j]

 if(i==j)

        a[i-1];

 

void set(int A[], int i, int j, int x) x is the element that i want to store

{

  if(i==j)

     A[i-1] = x;

}

 

int get(int A[], int i, int j)

{

  if(i==j) return A[i-1];

  else return 0;

}

 

 

#include 

struct Matrix{
    int A[10];
    int n;
};


void Set(struct Matrix *m, int i, int j, int x)
{

    if(i==j)
        m->A[i-1]=x;
}

int Get(struct Matrix m, int i, int j)
{
    if(i==j)
        return m.A[i-1];
    else
        return 0;
}

void Display(struct Matrix m)
{
    int i, j;
    for(i=0;i<m.n;i++)
    {
        for(j=0;j<m.n;j++)
        {
            if(i==j)
                printf("%d ",m.A[i]);
            else
                printf("0 ");
        }
        printf("\n");
    }
}

int main()
{
    struct Matrix m;
    m.n = 4;

    Set(&m,1,1,5);Set(&m,2,2,8);Set(&m,3,3,12);Set(&m,4,4,15);
    printf("%d\n",Get(m,2,2));
    Display(m);
}