Skip to main content
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
Post a Comment