Tuesday, November 2, 2010

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

0 comments:

Post a Comment