sparsetrans.c
65 linesc
DOWNLOAD
1// Aim: Program to perform Sparse Matrix Transpose.
2#include<stdio.h>
3int s[10][10],t[10][10];
4int read(int a[10][10],int m,int n){
5    int i,j,k=1;
6    s[0][0]=m;
7    s[0][1]=n;
8    for(i=0;i<m;i++){
9        for(j=0;j<n;j++){
10            if(a[i][j]!=0){
11                s[k][0]=i;
12                s[k][1]=j;
13                s[k][2]=a[i][j];
14                k++;
15            }
16        }
17    }
18    s[0][2]=k-1;
19    printf("\nThe sparse matrix is :\n");
20    for(i=0;i<k;i++){
21        for(j=0;j<3;j++){
22            printf("%d\t",s[i][j]);
23        }
24        printf("\n");
25    }
26}
27void transpose(){
28    int m,n,k,i,j;
29    t[0][0]=s[0][1];
30    t[0][1]=s[0][0];
31    t[0][2]=s[0][2];
32    k=1;
33    m=s[0][1];
34    n=s[0][2];
35    for(i=0;i<m;i++){
36        for(j=1;j<=n;j++){
37            if(s[j][1]==i){
38                t[k][0]=s[j][1];
39                t[k][1]=s[j][0];
40                t[k][2]=s[j][2];
41                k++;
42            }
43        }
44    }
45    printf("\nThe transpose of the sparse matrix is :\n");
46    for(i=0;i<k;i++){
47        for(j=0;j<3;j++){
48            printf("%d\t",t[i][j]);
49        }
50        printf("\n");
51    }
52}
53void main(){
54    int a[10][10],m,n,i,j;
55    printf("Enter the number of rows and columns of the matrix :");
56    scanf("%d%d",&m,&n);
57    printf("Enter the elements of the matrix :\n");
58    for(i=0;i<m;i++){
59        for(j=0;j<n;j++){
60            scanf("%d",&a[i][j]);
61        }
62    }
63    read(a,m,n);
64    transpose();
65}