#include<stdio.h>
#include<conio.h>
void main()
{
int a[20][20],b[20][20],sp1[20][20],sp2[20][20],add[20][20],flag;
int m,n,i,j,x1=0,x2=0,x3=0;
clrscr();
printf("Enter the size of first matrix(r*c)...\n\n");
scanf("%d%d",&m,&n);
clrscr();
printf("\nEnter the %d elements of the first sparse matrix....\n\n",m*n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
if(a[i][j]!=0)
{
x1++;
sp1[x1][0]=i;
sp1[x1][1]=j;
sp1[x1][2]=a[i][j];
}
}
}
sp1[0][0]=m;
sp1[0][1]=n;
sp1[0][2]=x1;
clrscr();
printf("\nEnter the %d elements of the second sparse matrix....\n\n",m*n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("b[%d][%d]=",i,j);
scanf("%d",&b[i][j]);
if(b[i][j]!=0)
{
x2++;
sp2[x2][0]=i;
sp2[x2][1]=j;
sp2[x2][2]=b[i][j];
}
}
}
sp2[0][0]=m;
sp2[0][1]=n;
sp2[0][2]=x2;
clrscr();
printf("\n\n\nTHe first sparse matrix is....\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("\t%d",a[i][j]);
}
printf("\n");
}
getch();
printf("\n\n\nTHe second sparse matrix is....\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("\t%d",b[i][j]);
}
printf("\n");
}
getch();
clrscr();
printf("\n\nthe alternate form of first sparse matrix i s....\n\n");
for(i=0;i<=x1;i++)
{
for(j=0;j<3;j++)
{
printf("\t%d",sp1[i][j]);
}
printf("\n");
}
getch();
printf("\n\nthe alternate form of second sparse matrix i s....\n\n");
for(i=0;i<=x2;i++)
{
for(j=0;j<3;j++)
{
printf("\t%d",sp2[i][j]);
}
printf("\n");
}
getch();
for(i=1;i<=x2;i++)
{
for(j=1;j<=x1;j++)
{
flag=0;
if(sp1[j][0]==-9999)
continue;
if(sp2[i][0]==-9999)
break;
if(sp1[j][0]<sp2[i][0])
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2];
sp1[j][0]=-9999;
flag=1;
}
else
if((sp1[j][0]==sp2[i][0])&&(sp1[j][1]==sp2[i][1]))
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2]+sp2[i][2];
sp1[j][0]=sp2[i][0]=-9999;
flag=1;
break;
}
else
if((sp1[j][0]==sp2[i][0])&&(sp1[j][1])<sp2[i][1])
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2];
sp1[j][0]=-9999;
flag=1;
}
else
if(flag==0)
{
x3++;
add[x3][0]=sp2[i][0];
add[x3][1]=sp2[i][1];
add[x3][2]=sp2[i][2];
sp2[i][0]=-9999;
}
}
}
for(j=x2;j<=x1;j++)
{
if(sp1[j][0]!=-9999)
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2];
}
}
for(i=x1;i<=x2;i++)
{
if(sp2[i][0]!=-9999)
{
x3++;
add[x3][0]=sp2[i][0];
add[x3][1]=sp2[i][1];
add[x3][2]=sp2[i][2];
}
}
add[0][0]=m;
add[0][1]=n;
add[0][2]=x3;
printf("\n\nThe addition of the sparse matrices is...\n\n");
for(i=0;i<=x3;i++)
{
for(j=0;j<3;j++)
{
printf("\t%d",add[i][j]);
getch();
}
printf("\n");
}
getch();
}
#include<conio.h>
void main()
{
int a[20][20],b[20][20],sp1[20][20],sp2[20][20],add[20][20],flag;
int m,n,i,j,x1=0,x2=0,x3=0;
clrscr();
printf("Enter the size of first matrix(r*c)...\n\n");
scanf("%d%d",&m,&n);
clrscr();
printf("\nEnter the %d elements of the first sparse matrix....\n\n",m*n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&a[i][j]);
if(a[i][j]!=0)
{
x1++;
sp1[x1][0]=i;
sp1[x1][1]=j;
sp1[x1][2]=a[i][j];
}
}
}
sp1[0][0]=m;
sp1[0][1]=n;
sp1[0][2]=x1;
clrscr();
printf("\nEnter the %d elements of the second sparse matrix....\n\n",m*n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("b[%d][%d]=",i,j);
scanf("%d",&b[i][j]);
if(b[i][j]!=0)
{
x2++;
sp2[x2][0]=i;
sp2[x2][1]=j;
sp2[x2][2]=b[i][j];
}
}
}
sp2[0][0]=m;
sp2[0][1]=n;
sp2[0][2]=x2;
clrscr();
printf("\n\n\nTHe first sparse matrix is....\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("\t%d",a[i][j]);
}
printf("\n");
}
getch();
printf("\n\n\nTHe second sparse matrix is....\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("\t%d",b[i][j]);
}
printf("\n");
}
getch();
clrscr();
printf("\n\nthe alternate form of first sparse matrix i s....\n\n");
for(i=0;i<=x1;i++)
{
for(j=0;j<3;j++)
{
printf("\t%d",sp1[i][j]);
}
printf("\n");
}
getch();
printf("\n\nthe alternate form of second sparse matrix i s....\n\n");
for(i=0;i<=x2;i++)
{
for(j=0;j<3;j++)
{
printf("\t%d",sp2[i][j]);
}
printf("\n");
}
getch();
for(i=1;i<=x2;i++)
{
for(j=1;j<=x1;j++)
{
flag=0;
if(sp1[j][0]==-9999)
continue;
if(sp2[i][0]==-9999)
break;
if(sp1[j][0]<sp2[i][0])
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2];
sp1[j][0]=-9999;
flag=1;
}
else
if((sp1[j][0]==sp2[i][0])&&(sp1[j][1]==sp2[i][1]))
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2]+sp2[i][2];
sp1[j][0]=sp2[i][0]=-9999;
flag=1;
break;
}
else
if((sp1[j][0]==sp2[i][0])&&(sp1[j][1])<sp2[i][1])
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2];
sp1[j][0]=-9999;
flag=1;
}
else
if(flag==0)
{
x3++;
add[x3][0]=sp2[i][0];
add[x3][1]=sp2[i][1];
add[x3][2]=sp2[i][2];
sp2[i][0]=-9999;
}
}
}
for(j=x2;j<=x1;j++)
{
if(sp1[j][0]!=-9999)
{
x3++;
add[x3][0]=sp1[j][0];
add[x3][1]=sp1[j][1];
add[x3][2]=sp1[j][2];
}
}
for(i=x1;i<=x2;i++)
{
if(sp2[i][0]!=-9999)
{
x3++;
add[x3][0]=sp2[i][0];
add[x3][1]=sp2[i][1];
add[x3][2]=sp2[i][2];
}
}
add[0][0]=m;
add[0][1]=n;
add[0][2]=x3;
printf("\n\nThe addition of the sparse matrices is...\n\n");
for(i=0;i<=x3;i++)
{
for(j=0;j<3;j++)
{
printf("\t%d",add[i][j]);
getch();
}
printf("\n");
}
getch();
}
No comments:
Post a Comment