Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

2-D Array

//Q1. Enter a matrix and display.


#include<stdio.h>
void display(int[][20],int,int);
main()
{
int a[20][20],i,j,r,c;
printf("\nEnter size of matrix(row,col):");
scanf("%d%d",&r,&c);
printf("\nEnter matrix elements:");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nMatrix is:\n");
display(a,r,c);
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
//Q2. Find sum of each row and column elements
of a matrix.
#include<stdio.h>
void display(int[][20],int,int);
void sum_row_col(int[][20],int,int);
main()
{
int a[20][20],i,j,r,c;
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

printf("\nEnter size of matrix(row,col):");


scanf("%d%d",&r,&c);
printf("\nEnter matrix elements:");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nMatrix is:\n");
display(a,r,c);
sum_row_col(a,r,c);
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void sum_row_col(int a[][20],int r,int c)
{
int i,j,sum;
for(i=0;i<r;i++)
{
sum=0;
for(j=0;j<c;j++)
{
sum=sum+a[i][j];
}
printf("\nSum of row%d elements are:
%d",i,sum);
}
for(j=0;j<c;j++)
Page 1

2-D Array
{
sum=0;
for(i=0;i<r;i++)
{
sum=sum+a[i][j];
}
printf("\nSum of col%d elements are:
%d",j,sum);
}
}
//Q3. Find transpose of a matrix.
#include<stdio.h>
void display(int[][20],int,int);
void transpose(int[][20],int,int);
main()
{
int a[20][20],i,j,r,c;
printf("\nEnter size of matrix(row,col):");
scanf("%d%d",&r,&c);
printf("\nEnter matrix elements:");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nMatrix is:\n");
display(a,r,c);
transpose(a,r,c);
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

printf("\n");
}
}
void transpose(int a[][20],int r,int c)
{
int b[20][20],i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
b[j][i]=a[i][j];
}
}
printf("\nTranspose matrix is:\n");
display(b,c,r);
}
//Q4. Matrix addition.
#include<stdio.h>
void display(int[][20],int,int);
void add(int[][20],int[][20],int,int);
void
appendzero(int[][20],int[][20],int,int,int,int,int,int);
main()
{
int a[20][20],b[20][20],i,j,r1,c1,r2,c2,r,c;
printf("\nEnter size of matrix1 (row,col):");
scanf("%d%d",&r1,&c1);
printf("\nEnter matrix1 elements:");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nEnter size of matrix2 (row,col):");
scanf("%d%d",&r2,&c2);
printf("\nEnter matrix2 elements:");
for(i=0;i<r2;i++)
{
Page 2

2-D Array
for(j=0;j<c2;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&b[i][j]);
}
}
printf("\n1st Matrix is:\n");
display(a,r1,c1);
printf("\n2nd Matrix is:\n");
display(b,r2,c2);
if(r1>r2)
r=r1;
else
r=r2;
if(c1>c2)
c=c1;
else
c=c2;
appendzero(a,b,r1,c1,r2,c2,r,c);
add(a,b,r,c);
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void add(int a[][20],int b[][20],int r,int c)
{
int x[20][20],i,j;
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
x[i][j] = a[i][j] + b[i][j];;
}
}
printf("\nAddition matrix is:\n");
display(x,r,c);
}
void appendzero(int a[][20],int b[][20],int r1,int
c1,int r2,int c2,int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i>r1 || j>c1)
a[i][j]=0;
}
}
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i>r2 || j>c2)
b[i][j]=0;
}
}
}
//Q5. Matrix multiplication.
#include<stdio.h>
void display(int[][20],int,int);
void multiply(int[][20],int[][20],int,int,int,int);
main()
{
int a[20][20],b[20][20],i,j,r1,c1,r2,c2;
printf("\nEnter size of matrix1 (row,col):");
scanf("%d%d",&r1,&c1);
printf("\nEnter matrix1 elements:");
Page 3

2-D Array
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nEnter size of matrix2 (row,col):");
scanf("%d%d",&r2,&c2);
printf("\nEnter matrix2 elements:");
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&b[i][j]);
}
}
printf("\n1st Matrix is:\n");
display(a,r1,c1);
printf("\n2nd Matrix is:\n");
display(b,r2,c2);
if(c1==r2)
multiply(a,b,r1,c1,r2,c2);
else
printf("\nMatrix multiplication not
possible.");
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

}
}
void multiply(int a[][20],int b[][20],int r1,int c1,int
r2,int c2)
{
int c[20][20],i,j,k;
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
c[i][j]=0;;
for(k=0;k<c1;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
printf("\nMultiplied matrix is:\n");
display(c,r1,c2);
}
//Q6. Exchange largest and smallest element in a
matrix.
#include<stdio.h>
void display(int[][20],int,int);
void Exchange_L_S(int[][20],int,int);
main()
{
int a[20][20],i,j,r,c;
printf("\nEnter size of matrix(row,col):");
scanf("%d%d",&r,&c);
printf("\nEnter matrix elements:");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nMatrix is:\n");
display(a,r,c);

Page 4

2-D Array
Exchange_L_S(a,r,c);
printf("\nMatrix after exchange is:\n");
display(a,r,c);
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void Exchange_L_S(int a[][20],int r,int c)
{
int i,j,large,small,x1,y1,x2,y2,temp;
large=0;
small=32767;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(a[i][j]>large)
{
large=a[i][j];
x1=i;
y1=j;
}
if(a[i][j]<small)
{
small=a[i][j];
x2=i;
y2=j;
}
}
}
temp=a[x1][y1];
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

a[x1][y1]=a[x2][y2];
a[x2][y2]=temp;
}
//Q7. Diagonals and Triangles.
#include<stdio.h>
void display(int[][20],int,int);
void Main_Diagonal(int[][20],int,int);
void Other_Diagonal(int[][20],int,int);
void Lower_Triangle(int[][20],int,int);
void Upper_Triangle(int[][20],int,int);
void Other_Lower_Triangle(int[][20],int,int);
void Other_Upper_Triangle(int[][20],int,int);
main()
{
int a[20][20],i,j,r,c,ch;
printf("\nEnter size of matrix(row,col):");
scanf("%d%d",&r,&c);
printf("\nEnter matrix elements:");
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("\nEnter a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\nMatrix is:\n");
display(a,r,c);
while(1)
{
printf("\n\n Press");
printf("\n0: Exit");
printf("\n1: Main_Diagonal");
printf("\n2: Other_Diagonal");
printf("\n3: Lower_Triangle");
printf("\n4: Upper_Triangle");
printf("\n5: Other_Lower_Triangle");
printf("\n6: Other_Upper_Triangle");
printf("\n\nEnter your choice: ");
scanf("%d",&ch);
Page 5

2-D Array
switch(ch)
{
case 0: return 0;
case 1: Main_Diagonal(a,r,c);
break;
case 2: Other_Diagonal(a,r,c);
break;
case 3: Lower_Triangle(a,r,c);
break;
case 4: Upper_Triangle(a,r,c);
break;
case 5:
Other_Lower_Triangle(a,r,c);
break;
case 6:
Other_Upper_Triangle(a,r,c);
break;
default: printf("\nInvalid choice.");
}
}
}
void display(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void Main_Diagonal(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

if(i==j)
printf("%d\t",a[i][j]);
else
{
printf(" ");
printf("\t");
}
}
printf("\n");
}
}
void Other_Diagonal(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i+j==r-1)
printf("%d\t",a[i][j]);
else
{
printf(" ");
printf("\t");
}
}
printf("\n");
}
}
void Lower_Triangle(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i>j)
printf("%d\t",a[i][j]);
else
{
printf(" ");
Page 6

2-D Array
printf("\t");
}
}
printf("\n");
}
}
void Upper_Triangle(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i<j)
printf("%d\t",a[i][j]);
else
{
printf(" ");
printf("\t");
}
}
printf("\n");
}
}
void Other_Lower_Triangle(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i+j>r-1)
printf("%d\t",a[i][j]);
else
{
printf(" ");
printf("\t");
}
}
printf("\n");
}
Srikanta Kumar Sahoo
Asst prof. ITER, SOA University

}
void Other_Upper_Triangle(int a[][20],int r,int c)
{
int i,j;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
if(i+j<r-1)
printf("%d\t",a[i][j]);
else
{
printf(" ");
printf("\t");
}
}
printf("\n");
}
}

Page 7

You might also like