Sunday, December 14, 2008

Program for finding the transpose of a martix in sparse form

#include <stdio.h>
#include <conio.h>
int a[100][100],b[100][100];

void main()
{
int i,m,n,p,q,col,t;
clrscr();
printf("Enter the no. of rows");
scanf("%d", &a[0][0]);
printf("Enter the no. of cols");
scanf("%d", &a[0][1]);
printf("Enter the number of non zero terms");
scanf("%d", &a[0][2]);

for(i=1;i<=a[0][2];i++)
{
printf("Enter the value (that is non zero)");
scanf("%d",&a[i][2]);
printf("Enter the row for %d : ",a[i][2]);
scanf("%d",&a[i][0]);
printf("Enter the col for %d : ",a[i][2]);
scanf("%d",&a[i][1]);
}

/* Printing for testing the sparse input */
printf("
*****************************
The martix you entered is
************************

Row Col Value ");
for ( i = 0;i <= a[0][2];i++)
{
printf("%d %d %d " , a[i][0],a[i][1],a[i][2]);
}

/* Calling function for evaluation of transpose */

m = a[0][0];
n = a[0][1];
t = a[0][2];

b[0][0] = n;
b[0][1] = m;
b[0][2] = t;

q=1;

for( col = 1; col <=n; col++)
{
for(p = 1; p<=t;p++)
{
if(a[p][1] == col)
{
b[q][0] = a[p][1];
b[q][1] =a[p][0];
b[q][2] = a[p][2];
q++;
}
}
} //end of outer for loop

/* Printing the transposed matrix */

getch();
printf("
The Transpose of the above matrix is ");
for ( i = 0;i <= a[0][2];i++)
{
printf("%d %d %d " , b[i][0],b[i][1],b[i][2]);
}
getch();
}

No comments:

Post a Comment