Transpose of Sparse Matrix C program


 

#include<stdio.h>

#include<conio.h>


voidmain()


{inti,j,m,n,a[10][10],c,sp[10][3],q,t[10][3];


clrscr();


do{c=0;


printf("\n\tEnterthe row size :");scanf("%d",&m);


printf("\n\tEnterthe column size:");scanf("%d",&n);


for(i=0;i<m;i++)


{


for(j=0;j<n;j++)


{


scanf("%d",&a[i][j]);


if(a[i][j])


{


c++;


sp[c][0]=i;sp[c][1]=j;


sp[c][2]=a[i][j];


}


}


}


sp[0][0]=m;sp[0][1]=n;sp[0][2]=c;


if(((c+1)*3)>(m*n))


printf("");


}while(((c+1)*3)>(m*n));


printf("\n Sparse Matrix:\n");


for(i=0;i<=c;i++)


{


for(j=0;j<3;j++)


printf("%d\t",sp[i][j]);


printf("\n");


}


for(q=1,i=0;i<n;i++)


{


for(j=1;j<=c;j++)


{


if(sp[j][1]==i)


{


t[q][0]=sp[j][1];t[q][1]=sp[j][0];


t[q][2]=sp[j][2];q++;


}


}


}


t[0][0]=n;t[0][1]=m;t[0][2]=c;


printf("\n Transpose Sparse Matrix:\n");


for(i=0;i<=c;i++)


{


for(j=0;j<3;j++)


printf("%d\t",t[i][j]);printf("\n");


}


getch();


}


Comments