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