Two - Dimensional Array
Two-Dimensional array is a fixed length, homogeneous data type, row and column based data structure which is used to store similar data type element in row and column based structure. See below image.
A two dimensional array is referred as a matrix or a table. A matrix has two subscripts, one denotes the row and another denotes the column.
- The first dimension might refer to the row number.
- Second dimension refer to the column number.
Two-Dimensional Array Declaration in C
Syntax
data_type array_name [rows] [column];
Example
int myNumber [3] [4];
Note: Number of elements in array = rows * columns
Two-Dimensional Array Initialization
Sytax
data_type array_name [m] [n] = {a1, a2, a3, ...., amn} ;
Here
m → number or row
n → number or column
a1, a2, a3, ...., amn are array elements.
Two-Dimensional array or multidimensional array can be initialised by two ways, which are listed below.
- By Hard – Coded values
- By User Input
By Hard –Coded values
In this method Two-Dimensional array can be initialized by 2 types i.e. either we can pass all element together or we can we can pass value by grouping rows values.
A. All Elements Together
int c_students [2] [5] = {1,2,3,4,5,12,17,11,23,9} ;
In above example array c_students is a two dimensional array which have 2 rows and 5 column, so the array can hold 2*5 = 10 values of similar types which are passed within { and } separated by comma.
B. By Grouping rows values
Here we are grouping the value of row together within {} separated by comma, and these row are also separated with comma.
int c_students [2] [5] = { {1,2,3,4,5}, {12,17,11,23,9} } ;
The array c_students have 2 rows and 5 columns, so we have grouped row value together means row 0 values in one {} separated by comma and row 1 values in other {} separated by comma and these two set of {} are also separated by comma within main {}. Let's take another example.
int test [6] [2] = { {23,45}, {32,5}, {7,43}, {74,97}, {734,75}, {85,80} } ;
In above example we have 6 rows and 2 column, we have grouped individual row values together, so there is 6 groups for 6 rows.
int test [6] [ ] = { {23,45}, {32,5}, {7,43}, {74,97}, {734,75}, {85,80} } ;
If we do not define row or column value then it assigned by compiler automatically according to initialized value, like above example.
Three-Dimensional Array Initialization
Three dimensional array are also initialized in same way as Two-Dimensional array, Let’s understand Three-Dimensional Array initialization by taking an example.
int myDia [2] [3] [4] = {
{ {23,45,47,74}, {32,5,75,85}, {7,4,75,85}},
{ {33,49,47,45}, {4,5,95,74}, {24,43,44,23}}
} ;
Accessing Two-Dimensional Array Elements
An array elements are accessed based on their index, in one dimensional array we pass one index, in Two-Dimensional array we pass two value of index, in Three-Dimensional array we pass three value of index and similarly for n-dimensional array we pass n value of index.
int a;
In One-Dimensional Array
a = array_name[index_vlue1];
In Two-Dimensional Array
a = array_name [index_vlue1] [index_vlue2];
In Three-Dimensional Array
a = array_name [index_vlue1] [index_vlue2] [index_vlue3];
Example
int c_students [2] [5] = {1,2,3,4,5,12,17,11,23,9} ;
Here
c_students [0] [0] == 1
c_students [0] [1] == 2
c_students [0] [2] == 3
c_students [0] [3] == 4
c_students [0] [4] == 5
c_students [1] [0] == 12
c_students [1] [1] == 17
c_students [1] [2] == 11
c_students [1] [3] == 23
c_students [1] [4] == 9
Two-Dimensional Array Initialization by User Input
Let’s write a program to initialize a two dimensional array input value inserted by user
Explanation
- In above example we have declared two variables I and j, where I denotes row index and j denotes column index.
- There are two for loops, outer for loop is used to count row number and inner for loop is used to count column number.
- Outer loop will execute two times for condition i=0;i<2;i++
- For one outer loop round, inner loop will execute 3 times for condition j=0;j<3;j++ , So in this way inner loop will execute total 6 times.
1. Step i=0
For i=0, inner loop executes 3 times and value will be insewrted in array at index
test[i][j] means test[0][0] index.
test[i][j] means test[0][1] index.
test[i][j] means test[0][2] index.
2. Step i=1
For i=1, inner loop executes 3 times and value will be insewrted in array at index
test[i][j] means test[1][0] index.
test[i][j] means test[1][1] index.
test[i][j] means test[1][2] index.
Two-Dimensional Array Examples
1. Example
Write a program to prints element of a two dimensional array, the array elements are predefined.
Output
2. Example
Write a c program in which a two dimensional char array of size [3][4] accept input from user and print all input element.
Output Screen
Enter 12 characters
m
c
x
s
z
d
e
l
d
w
a
j
Array elements are
m c x s
z d e l
d w a j
3. Example
Write a program to print addition of two predefined matrix and it should also print predefined matrix elements.
Output Screen
First Matrix is
0 3 7
3 9 3
2 1 0
Second Matrix is
3 6 2
6 6 1
8 9 2
Addition of matrix 1 and matrix 2
3 9 9
9 15 4
10 10 2
See more programs on Two-Dimensional array in array programs section, now let’s learn how to use array with function, just click on next.