Function to find the transpose of a sparse matrix?

Answer:
// 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(); }

Note: There are comments associated with this question. See the discussion page to add to the conversation.
First answer by ID1135573549. Last edit by Shweta6. Contributor trust: 0 [recommend contributor recommended]. Question popularity: 5 [recommend question].