Aim: Read a sparse matrix and display its triplet representation using array in C.
#include<stdio.h>
int main()
{
int S[10][10],m,n,i,k=0,size=0;
printf("Enter number of rows in the matrix : ");
scanf("%d",&m);
printf("Enter number of columns in the matrix : ");
scanf("%d",&n);
printf("Enter elements in the matrix : ");
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
scanf("%d",&S[i][j]);
printf("The matrix is \n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf(" %d ",S[i][j]);
if (S[i][j] != 0)
size++;
}
printf("\n");
}
int M[3][size];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
if (S[i][j] != 0)
{
M[0][k] = i;
M[1][k] = j;
M[2][k] = S[i][j];
k++;
}
printf("Triplet representation of the matrix is \n");
for (int i=0; i<3; i++)
{
for (int j=0; j<size; j++)
printf(" %d ", M[i][j]);
printf("\n");
}
return 0;
}
