// transpose for the sparse matrix void main() { clrscr(); int
a[10][10],b[10][10]; int m,n,p,q,t,col; int i,j; printf("enter the
no of row and columns :\n"); scanf("%d %d",&m,&n); //
assigning the value of matrix for(i=1;i<=m;i++) {
for(j=1;j<=n;j++) { printf("a[%d][%d]= ",i,j);
scanf("%d",&a[i][j]); } } printf("\n\n"); //displaying the
matrix printf("\n\nThe matrix is :\n\n"); for(i=1;i<=m;i++) {
for(j=1;j<=n;j++) { printf("%d\t",a[i][j]); } printf("\n"); }
t=0; printf("\n\nthe non zero value matrix are :\n\n");
for(i=1;i<=m;i++) { for(j=1;j<=n;j++) { // accepting only non
zero value if(a[i][j]!=0) { t=t+1; b[t][1]=i; b[t][2]=j;
b[t][3]=a[i][j]; } } } printf("a[0 %d %d %d\n",m,n,t);
for(i=1;i<=t;i++) { printf("a[%d %d %d
%d\n",i,b[i][1],b[i][2],b[i][3]); } a[0][1]=n; a[0][2]=m;
a[0][3]=t; int s[10],u[10]; if(t>0) { for(i=1;i<=n;i++) {
s[i]=0; } for(i=1;i<=t;i++) { s[b[i][2]]=s[b[i][2]]+1; } u[1]=1;
for(i=2;i<=n;i++) { u[i]=u[i-1]+s[i-1]; } for(i=1;i<=t;i++) {
j=u[b[i][2]]; a[j][1]=b[i][2]; a[j][2]=b[i][1]; a[j][3]=b[i][3];
u[b[i][2]]=j+1; } } printf("\n\n the fast transpose matrix \n\n");
printf("a[0 %d %d %d\n",n,m,t); for(i=1;i<=t;i++) { printf("a[%d
%d %d %d\n",i,a[i][1],a[i][2],a[i][3]); } getch(); }