UNIT IVcp
UNIT IVcp
ECE-D&E Subject: C.P, Geethanjali College of Engg & Technology (B.Tech. I Year) Prepared By J Uma Mahesh
------------------------------------------------------------------------------------------------------------------------------------------
UNIT–IV:
1. What is an array? How to declare and initialize arrays? Explain with examples
Ans: Array:-
An array is defined as an ordered set of similar data items. All the data items of an array are
stored in consecutive memory locations in RAM. The elements of an array are of same data type
and each item can be accessed using the same name.
Declaration of an array:- We know that all the variables are declared before they are used in
the program. Similarly, an array must be declared before it is used. During declaration, the size
of the array has to be specified. The size used during declaration of the array informs the
compiler to allocate and reserve the specified memory locations.
Ex:int a[5];
float x[10];
Initialization of Arrays:-
1. At Compile time
(i) Initializing all specified memory locations.
(ii) Partial array initialization
(iii) Initialization without size.
(iv) String initialization.
2. At Run Time
1. Compile Time Initialization
We can initialize the elements of arrays in the same way as the ordinary variables when they are
declared. The general form of initialization of arrays is
1
ech
ECE-D&E Subject: C.P, Geethanjali College of Engg & Technology (B.Tech. I Year) Prepared By J Uma Mahesh
------------------------------------------------------------------------------------------------------------------------------------------
(i) Initializing all specified memory locations:- Arrays can be initialized at the time of
declaration when their initial values are known in advance. Array elements can be initialized
with data items of type int, char etc.
During compilation, 5 contiguous memory locations are reserved by the compiler for the variable
a and all these locations are initialized as shown in figure.
Ex:-
int a[3]={9,2,4,5,6}; //error: no. of initial vales are more than the size of array.
(i) Partial array initialization:- Partial array initialization is possible in c language. If the
number of values to be initialized is less than the size of the array, then the elements will be
initialized to zero automatically.
Ex:-
int a[5]={10,15};
Even though compiler allocates 5 memory locations, using this declaration statement; the
compiler initializes first two locations with 10 and 15, the next set of memory locations are
automatically initialized to 0's by compiler as shown in figure.
Ex:-
int a[5]={0};
(ii) Initialization without size:- Consider the declaration along with the initialization.
Ex:-
char b[]={'C','O','M','P','U','T','E','R'};
In this declaration, even though we have not specified exact number of elements to be used in
array b, the array size will be set of the total number of initial values specified. So, the array size
will be set to 8 automatically. The array b is initialized as shown in figure.
(iv) Array initialization with a string: -Consider the declaration with string initialization.
Ex:-
char b[]="COMPUTER";
Even though the string "COMPUTER" contains 8 characters, because it is a string, it always ends
with null character. So, the array size is 9 bytes (i.e., string length 1 byte for null character).
Ex:-
Ans: An array consisting of two subscripts is known as two-dimensional array. These are
often known as array of the array. In two dimensional arrays the array is divided into rows
and columns. These are well suited to handle a table of data. In 2-D array we can declare an
array as :
Declaration:-
where first index value shows the number of the rows and second index value shows the
number of the columns in the array.
x:
in
t
a[
2]
[3
]=
{
0,
0,
0,
5
ech
ECE-D&E Subject: C.P, Geethanjali College of Engg & Technology (B.Tech. I Year) Prepared By J Uma Mahesh
------------------------------------------------------------------------------------------------------------------------------------------
We can also initialize a two-dimensional array in the form of a matrix as shown below
int a[2][3]={
{0,0,0},
{1,1,1}
};
When the array is completely initialized with all values, explicitly we need not specify the size of
the first dimension.
{0,2,3},
{2,1,2}
};
If the values are missing in an initializer, they are automatically set to zero.
{1,1},
{2}
};
Will initialize the first two elements of the first row to one, the first element of the second row to
two and all other elements to zero.
3. Explain how two dimensional arrays can be used to represent matrices. (or)
In Row-Major Implementation of the arrays, the arrays are stored in the memory in terms of
the row design, i.e. first the first row of the array is stored in the memory then second and so on.
Suppose we have an array named arr having 3 rows and 3 columns then it can be stored in the
memory in the following manner :
int arr[3][3];
arr[3][3] = { 1, 2, 3,
4, 5, 6,
7, 8, 9 };
and it will be represented in the memory with row major implementation as follows :
1 2 3 4 5 6 7 8 9
In Column-Major Implementationof the arrays, the arrays are stored in the memory in the
term of the column design, i.e. the first column of the array is stored in the memory then the
second and so on. By taking above eg. we can show it as follows :
arr[3][3] = { 1, 2, 3,
4, 5, 6,
7, 8, 9 };
and it will be represented in the memory with column major implementation as follows :
1 4 7 2 5 8 3 6 9
An array consisting of two subscripts is known as two-dimensional array. These are often known
as array of the array. In two dimensional arrays the array is divided into rows and columns,.
These are well suited to handle the table of data. In 2-D array we can declare an array as :
Declaration:-
Where first index value shows the number of the rows and second index value shows the no. of
the columns in the array.
These are stored in the memory as given below.
Initialization :-
To initialize values for variable length arrays we can use scanf statement and loop constructs.
Ex:-
for(j=0;j<3;j++)
scanf(“%d”,&arr[i][j]);
Ans: Multidimensional arrays are often known as array of the arrays. In multidimensional
arrays the array is divided into rows and columns, mainly while considering multidimensional
arrays we will be discussing mainly about two dimensional arrays and a bit about three
dimensional arrays.
int arr[3][3] = { 1, 2, 3,
4, 5, 6,
7, 8, 9
};
where first index value shows the number of the rows and second index value shows the number
of the columns in the array. To access the various elements in 2-D array we can use:
printf("%d", a[2][3]);
/* output will be 6, as a[2][3] means third element of the second row of the array */
int arr[3][3][3] =
{ 1, 2, 3,
4, 5, 6,
7, 8, 9,
10, 11, 12,
13, 14, 15,
16, 17, 18,
/* here we have divided array into grid for sake of convenience as in above declaration we have
created 3 different grids, each have rows and columns */
printf("%d",a[2][2][2]);
/* its output will be 26, as a[2][2][2] means first value in [] corresponds to the grid no. i.e. 3 and
the second value in [] means third row in the corresponding grid and last [] means third column
*/
Ex:-
int arr[3][5][12];
float table[5][4][5][3];
arr is 3D array declared to contain 180 (3*5*12) int type elements. Similarly table is a 4D array
containing 300 elements of float type.
#include<stdio.h>
#include<conio.h>
#include<process.h>
void main()
int a[10][10],b[10][10],c[10][10];
int i,j,m,n,p,q;
scanf("%d%d", &m,&n);
scanf("%d%d", &p,&q);
if(m!=p || n!=q)
exit(0);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<p;i++)
for(j=0;j<q;j++)
scanf("%d",&b[i][j]);
for(i=0;i<m;i++)
for(j=0;j<n;j++) c[i]
[j]=a[i][j]+b[i][j];
printf("\n The Matrix A is\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf(" %d",a[i][j]);
printf("\n");
for(i=0;i<p;i++)
for(j=0;j<q;j++)
printf(" %d",b[i][j]);
printf("\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf(" %d",c[i][j]);
printf("\n");
}
OUTPUT:
1
The Matrix A is
123
456
The Matrix B is
654
321
777
777
MULTIPLICATION*/
#include<stdio.h>
#include<conio.h>
#include<process.h>
void main()
{
int a[10][10],b[10][10],c[10][10];
int i,j,k,m,n,p,q;
printf("\ Enter the size of Matrix A:");
scanf("%d%d", &m,&n);
printf("\ Enter the size of Matrix B:");
scanf("%d%d", &p,&q);
if(n!=p)
{
printf("Matrix Multiplication not possible.");
exit(0);
}
printf(" Enter the Matrix A values:\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf(" Enter the Matrix B values:\n");
for(i=0;i<p;i++)
for(j=0;j<q;j++)
scanf("%d",&b[i][j]);
for(i=0;i<m;i++)
for(j=0;j<q;j++)
{ c[i]
[j]=0;
for(k=0;k<n;k++) c[i][j]=c[i]
[j]+a[i][k]*b[k][j];
}
printf("\n The Matrix A is\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf(" %d",a[i][j]);
printf("\n");
}
printf("\n The Matrix B is\n");
for(i=0;i<p;i++)
{
for(j=0;j<q;j++)
printf(" %d",b[i][j]);
printf("\n");
}
printf("\n The Output Matrix C is\n");
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
printf(" %d",c[i][j]);
printf("\n");
}
}
OUTPUT:
Enter the size of Matrix A:2
3
Enter the size of Matrix B:3
2
Enter the Matrix A values:
2
2
2
2
2
2
Enter the Matrix B values:
3
3
3
3
3
3
The Matrix A is
222
222
The Matrix B is
33
33
33
The Output Matrix C is
15 15
15 5