Hello to all
This is my firts post and topic here and also I'm new and starter in C++
as you see in topic title here is the code of transpose of sparse matrix
can anyone tell me completely what does program do line by line
i have an another easy algorithm but want to know how this works and anyone knows another way to find transpose of this matrix , its good to have it in topic
thanks a lot
Code:
#include<stdio.h>
#include<conio.h>
// 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",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];
} }
}
// displaying the matrix of non-zero value
printf("\n");
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]);
}
b[0][1]=n; b[0][2]=m; b[0][3]=t;
q=1;
// transpose of the matrix
printf("\n\nthe transpose of the matrix :\n ");
if(t>0)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=t;j++)
{
if(b[j][2]==i)
{
a[q][1]=b[j][2]; a[q][2]=b[j][1];
a[q][3]=b[j][3]; q=q+1;
} }
} }
printf("\n\n");
printf("a[0 %d %d %d\n",b[0][1],b[0][2],b[0][3]);
for(i=1;i<=t;i++)
{
printf("a[%d %d %d %d\n",i,a[i][1],a[i][2],a[i][3]);
}
getch();
}