0% found this document useful (0 votes)
149 views

2d Arrays

Two-dimensional arrays allow arrays to have more than one dimension. They consist of rows and columns, with the number of rows and columns specified as constants. A 2D array can be processed with a nested for loop, with the outer loop iterating through rows and the inner loop iterating through columns. 2D arrays can be initialized using curly braces. When passing a 2D array as a parameter, the base address and number of columns must be specified.

Uploaded by

amandeep651
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
149 views

2d Arrays

Two-dimensional arrays allow arrays to have more than one dimension. They consist of rows and columns, with the number of rows and columns specified as constants. A 2D array can be processed with a nested for loop, with the outer loop iterating through rows and the inner loop iterating through columns. 2D arrays can be initialized using curly braces. When passing a 2D array as a parameter, the base address and number of columns must be specified.

Uploaded by

amandeep651
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

TWO-DIMENSIONAL ARRAYS

TWO-DIMENSIONAL ARRAYS
C++ also allows an array to have more than one dimension.

For example, a two-dimensional array consists of a certain number of rows


and columns:

const int NUMROWS = 3;


const int NUMCOLS = 7;
int Array[NUMROWS][NUMCOLS]; 0 1 2 3 4 5 6
0 4 18 9 3 -4 6 0
1 12 45 74 15 0 98 0
2 84 87 75 67 81 85 79

Array[2][5] 3rd value in 6th column


Array[0][4] 1st value in 5th column

The declaration must specify the number of rows and the number of columns,
and both must be constants.
PROCESSING A 2-D ARRAY
A one-dimensional array is usually processed via a for loop. Similarly, a two-
dimensional array may be processed with a nested for loop:

for (int Row = 0; Row < NUMROWS; Row++) {


for (int Col = 0; Col < NUMCOLS; Col++) {
Array[Row][Col] = 0;
}
}

Each pass through the inner for loop will initialize all the elements of the current
row to 0.

The outer for loop drives the inner loop to process each of the array's rows.
INITIALIZING IN DECLARATIONS
int Array1[2][3] = { {1, 2, 3} , {4, 5, 6} };
int Array2[2][3] = { 1, 2, 3, 4, 5 };
int Array3[2][3] = { {1, 2} , {4 } };

If we printed these arrays by rows, we would find the following initializations


had taken place:

Rows of Array1:
1 2 3 for (int row = 0; row < 2; row++) {
4 5 6 for (int col = 0; col < 3; col++) {
cout << setw(3)
Rows of Array2:
1 2 3 << Array1[row][col];
4 5 0
}

Rows of Array3: cout << endl;


1 2 0 }
4 0 0
EXAMPLE: INPUT USING CIN
 Nested for loops are often used when
inputting and assigning values to a two-dimensional array.
 Nested loops are generally useful for getting around the 2D
arrays…

for (int i=0; i<RSIZE; ++i) //every row


for (int j=0; j<CSIZE; ++j )//every col
cin >> table[i][j];
2-D ARRAYS AS PARAMETERS
When passing a two-dimensional array as a parameter, the base address is
passed, as is the case with one-dimensional arrays.

But now the number of columns in the array parameter must be specified.
This is because arrays are stored in row-major order, and the number of
columns must be known in order to calculate the location at which each row
begins in memory:

address of element (r, c) = base address of array


+ r*(number of elements in a row)*(size of an
element)
+ c*(size of an element)

void Initialize(int TwoD[][NUMCOLS], const int NUMROWS) {


for (int i = 0; i < NUMROWS; i++) {
for (int j = 0; j < NUMCOLS; j++)
TwoD[i][j] = -1;
}
}
FUNCTION TO DISPLAY CONTENT OF A TWO
DIMENSIONAL ARRAY A

#include <iostream>
#include <iomanip>
using namespace std;

void print(int A[][3],int N, int M)


{
for (int R = 0; R < N; R++){
cout <<endl;
for (int C = 0; C < M; C++)
cout << setw(10) <<A[R][C];
}
}
FUNCTION TO FIND THE SUM OF TWO DIMENSIONAL
ARRAYS A AND B

void addition(int A[][3], int B[][3],int N, int M)


{
for(int R=0;R<N;R++){

cout<<endl;
for(int C=0;C<M;C++)
cout<<setw(10) <<A[R][C]+B[R][C];
}
}
FUNCTION TO FIND & DISPLAY SUM OF ROWS & SUM
OF COLS. OF A 2D ARRAY A

void SumRowCol(int A[][20], int N, int M)


{
for(int R=0;R<N;R++)
{
int SumR=0;
for(int C=0;C<M;C++)
SumR+=A[R][C];
cout<<"Row("<<R<<")="<<SumR<<endl;
}
}

for(int R=0;R<M;R++)
{
int SumC=0;
for(int C=0;C<N;C++)
SumC+=A[C][R];
cout<<"Column("<<R<<")="<<SumC<<endl;
}
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy