100% found this document useful (1 vote)
86 views

Two Dimensional Arrays: General Form of An 2D Array Is Datatype Array - Name (Row - Size) (Column - Size)

Two dimensional arrays allow data to be stored and accessed in a matrix format. They are declared with two sets of brackets specifying the number of rows and columns, such as int array[4][3]. Elements are stored continuously in memory from left to right, top to bottom. Common operations on 2D arrays include initializing them, reading and printing their contents, performing arithmetic operations like addition on multiple arrays, and checking properties like whether a matrix is symmetric.

Uploaded by

alizarana
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
86 views

Two Dimensional Arrays: General Form of An 2D Array Is Datatype Array - Name (Row - Size) (Column - Size)

Two dimensional arrays allow data to be stored and accessed in a matrix format. They are declared with two sets of brackets specifying the number of rows and columns, such as int array[4][3]. Elements are stored continuously in memory from left to right, top to bottom. Common operations on 2D arrays include initializing them, reading and printing their contents, performing arithmetic operations like addition on multiple arrays, and checking properties like whether a matrix is symmetric.

Uploaded by

alizarana
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

TWO DIMENSIONAL ARRAYS

There are 3 types of arrays:1. 1 D Array


2. 2 D Array
3. Multi Dimensional Array

Maximum limit of Arrays is compiler dependent.


If we want to represent an array in a matrix form we will be using 2 D
Arrays.
General form of an 2D array is
Datatype

Ex:

int

array_ name[row_size][column_size];

i[4][3];

An array i is declared which contains 12 integer values in 4 rows and 3


columns.
Initializing a 2D array in program:
int

i[4][3] = { { 1,2,3 } , { 4,5,6 } , { 7,8,9 } , { 10,11,12 } };

c1

c2

c3

r1

r2

r3

r4

10

11

12

4X3

MEMORY OF 2 D ARRAY:
In memory it is not possible to store elements in form of rows and
columns. Whether it is a 1 D (or) 2 D Array, the elements are stored in
continuous memory locations. The arrangement of elements of a 2 D is
shown below:
int a[4][3] = = { { 10,20,30 } , { 4,8,9 } , { 23,41,32 } , { 15,18,24 } };
a[0][0] a[0][1] a[0][2]

a[1][0]

a[1][1] a[1][2]

..a[3][2]
10
20
30
4
1000 1002 1004

8
9
1006

23
41
1008

1022
// WAP to read a 2-D Array and print it.
Void main()
{
int a[10][10] , i , j , m , n ;
Clrscr();

32
15
.

18

24

Printf enter the order of matrix \n );


Scanf( %d%d , &m, &n);
Printf \n enter the elements of array: \n );
for(i=0;i<m;i++)

//

for rows.

//

for columns.

//

for rows.

//

for columns.

{
for (j=0;j<n;j++)
{
Scanf(%d, &a[i][j]);
}
}
for(i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
printf(%d, a[i][j]);
}
Print( \n );
}
}

//write a program for ADDITION OF 2 MATRICES


# include <stdio.h>
# include <conio.h>
void main()
{
int a[10][10],b[10][10],c[10][10];
int i,j;
int r1,r2,c1,c2;
clrscr();
printf("Enter the size of the first matrix ( rows and coloums)\n");
scanf("%d%d",&r1,&c1);
printf("Enter the size of the seond matrix (rows and coloums)\n");
scanf("%d%d",&r2,&c2);
printf("Enter the elements in matrix one");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&a[i][j]);
} }

printf("Enter the elements in matrix two");


for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
scanf("%d",&b[i][j]);
} }
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}
printf("The sum of the two matrices is \n");
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
printf(" %d",c[i][j]);

}
printf("\n");
}
getch();
}

// program for MULTIPLICAION OF 2 MATRICES


#include<stdio.h>
#include<conio.h>
void main()
{
int a[10][10],b[10][10],c[10][10],r1,c1,r2,c2,i,j,k;
clrscr();
printf("Enter the number of rows and columns in 1st matrix\n");
scanf("%d%d",&r1,&c1);
printf("Enter the number of rows and columns in 2nd matrix\n");
scanf("%d%d",&r2,&c2);

if(c1 == r2)
{

printf("Enter the elements of the matrix of a\n");


for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("Enter the elements of the matrix of b\n");
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
scanf("%d",&b[i][j]);
}
}
for(i=0;i<r1;i++)

{
for(j=0;j<c2;j++)
{
c[i][j]=0;
for(k=0;k<c2;k++)
{
c[i][j] =c[i][j] + (a[i][k] * b[k][j]);
}
}
}
printf("\nProduct of the two matrices is\n");
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
printf(" %d",c[i][j]);
}
printf("\n");
}
}

else
printf("Matrix multiplication not possible");
getch();
}

// program to find transpose of given matrix and print the identity


matrix of order m x n
#include<stdio.h>
#include<conio.h>
void main()
{
int a[10][10],b[10][10],c[10][10],r1,c1,r2,c2,i,j,k;
clrscr();
printf("Enter the number of rows and columns\n");
scanf("%d%d",&r1,&c1);
printf("Enter the %d elements\n",r1*c1);
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{

scanf("%d",&a[i][j]);
}
}

for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
b[j][i] = a[i][j];
}
}
printf("Transpose of given matrix is\n");
for(i=0;i<c1;i++)
{
for(j=0;j<r1;j++)
{
printf("%d ",b[i][j]);
}
printf("\n");
}

if(r1 == c1)
{
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
if(i==j)
a[i][j] = 1;
else
a[i][j] = 0;
}
}

printf("Identity matrix of given order is\n");


for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
printf("%d ",a[i][j]);

}
printf("\n");
}
}
else
printf("\nIdentity matrix should be square matrix");
getch();
}

// program to check the EQUALITY OF 2 MATRICES


void main()
{
int a[10][10],b[10][10];
int sum,i,j,k,r1,r2,c1,c2,temp;
clrscr();
printf("enter rows and columns matrix-1\n");
scanf("%d %d",&r1,&c1);
printf("enter rows and columns matrix-2\n");
scanf("%d %d",&r2,&c2);
if(r1==r2&&c1==c2)

{
printf("enter elements of the matrix-1\n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&a[i][j]);
printf("\n");
}
}

printf("enter elements of the matrix-2\n");


for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
scanf("%d",&b[i][j]);
printf("\n");
}
}

/*printing matrix-1*/
printf("matrix-1\n\n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
printf("%d\t",a[i][j]);

}
printf("\n\n\n");
}
/* printing matrix-2*/
printf("matrix-2\n\n");
for(i=0;i<r2;i++)
{
for(j=0;j<c2;j++)
{
printf("%d\t",b[i][j]);

printf("\n\n\n");
}
/* checking equality */
for(i=0;i<r1;i++)
{
for(j=0;j<c2;j++)
{
if(a[i][j]!=b[i][j])
{
temp=1;
break;
}
}
}
}

else
printf("cannot be compared");

if(temp==1)

printf("matrices are not equal");


else
printf("matrices are equal");
getch();
}

// program to check whether the given matrix is SYMMETRIC


MATRIX or not
void main()
{
int a[10][10],b[10][10];
int sum,i,j,k,m,n,temp;
clrscr();
printf("enter size of square matrix\n");
scanf("%d %d",&m,&n);
if(m==n)
{
printf("enter elements of the matrix\n");
for(i=0;i<m;i++)
{

for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
printf("\n");
}
}
printf("the input matrix is\n\n\n\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d\t",a[i][j]);

}
printf("\n\n\n\n\n\n");
}

for(i=0;i<m;i++)
{
for(j=0;j<n;j++)

{
b[i][j]=a[j][i];

}
}

printf("transpose of a matrix is\n\n\n\n\n");


for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d\t",b[i][j]);

}
printf("\n\n\n\n\n\n");
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{

if(a[i][j]!=b[i][j])
{
temp=0;
//printf("matrix is symmetric");
}
}
}
if(temp==0)

printf("matrix is not symmetric");


else
printf("matrix is symmetric");
}
else
printf("symmetric matrix shud be a square matrix");
getch();
}

You might also like