Skip to main content

Sparse Matrix using Array in C


Program to implement Sparse Matrix using Array in C language

#include<stdio.h>
#include<conio.h>

 int spa[10][10];
 void spmatrix(int,int,int);
 void main()
 { int  i,j,n,m,num,elem=0;
   clrscr();
   printf("\nenter no. of rows: ");
   scanf("%d",&n);
   printf("\nenter no. of column: ");
   scanf("%d",&m);
   printf("\nenter the elements of array\n");
   for(i=0;i<n;i++)
   { for(j=0;j<m;j++)
     { scanf("%d",&spa[i][j]);
     }
   }
   printf("\nmatrix:\n");
   for(i=0;i<n;i++)
   {for(j=0;j<m;j++)
    { printf(" %d",spa[i][j]);
    }
    printf("\n");
   }
 
   for(i=0;i<n;i++)
   { for(j=0;j<m;j++)
     { if(spa[i][j]!=0)
       elem++;
     }
   }
   spmatrix(elem+1,n,m);
 getch();
 }

 void spmatrix(int t,int n,int m)
 { int b[10][3],i,j,q=1;
   b[0][0]=n;
   b[0][1]=m;
   b[0][2]=t-1;
   for(i=1;i<=n;i++)
   {for(j=1;j<=m;j++)
    { if(spa[i-1][j-1]!=0)
      { b[q][0]=i;
b[q][1]=j;
b[q][2]=spa[i-1][j-1];
      q++;
    }
    }
   }
   printf("\n\nsparse matrix:\n");
   for(i=0;i<t;i++)
   {for(j=0;j<3;j++)
    { printf(" %d",b[i][j]);
    }
    printf("\n");
   }
   }

Comments

Post a Comment

Popular posts from this blog

Use Case Diagram for Online Book Store

Online Movie Ticket Booking Sequence Diagram

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};