0% found this document useful (0 votes)
8 views17 pages

ESC-M4

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
0% found this document useful (0 votes)
8 views17 pages

ESC-M4

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 17

Module 4

20-10-2023 Prof. Shilpa B V 1


Two Dimensional Arrays: 2-D
• Two dimensional array is known as matrix.
• The array declaration is done with two subscripts.
• Its syntax is :
Data-type array-name[row][column];
• Total no. of elements in 2-D array is calculated as row*column
• Example:- int a[2][3]; It means the matrix consists of 2 rows and 3 columns
Total no of elements=row*column - 2*3 =6
• For example:- 20 2 7
8 3 15
11 12 9
20-10-2023 Prof. Shilpa B V 2
2-D Arrays
Array data in memory
with address
Array data or Array data positions
Matrix data

24 15 34

26 134 194

67 23 345

20-10-2023 Prof. Shilpa B V 3


Operations on 2-D arrays
• For processing 2-d array, two nested for loops are used.
• The outer for loop corresponds to the row and the inner for loop
corresponds to the column.
• For example int a[4][5];
To display or output the value in matrix form:
To Read or input the value: for(i=0; i<4; i++)
for(i=0; i<4; i++) {
{ for(j=0; j<5; j++)
for(j=0; j<5; j++) {
{ printf(“%d\t”, a[i][j]);
scanf(“%d”, &a[i][j]); }
} printf(“\n”);
} 20-10-2023 } Prof. Shilpa B V 4
Initialization of 2-d array
• 2-D array can be initialized as follows.
• Example:- int mat[4][3]={11,12,13,14,15,16,17,18,19,20,21,22};
• These values are assigned to the elements row wise, so the values of
elements after this initialization are
• Mat[0][0]=11, Mat[0][1]=12, Mat[0][2]=13
• Mat[1][0]=14, Mat[1][1]=15, Mat[1][2]=16
• Mat[2][0]=17, Mat[2][1]=18, Mat[2][2]=19
• Mat[3][0]=20, Mat[3][1]=21, Mat[3][2]=22

20-10-2023 Prof. Shilpa B V 5


Initialization of 2-d array
• While initializing the elements can be grouped row wise using inner braces.
• for example:- int mat[4][3]={{11,12,13},{14,15,16},{17,18,19},{20,21,22}};
• And while initializing , it is necessary to mention the 2nd dimension where
1st dimension is optional.
• Example : int mat[][3];
int mat[2][3];

• Whereas int mat[][];


int mat[2][]; are invalid

20-10-2023 Prof. Shilpa B V 6


Initialization of 2-d array
• If the array is initialized as
int mat[4][3] = {{11},{12,13},{14,15,16},{17}};

• Then the compiler will assume its all rest value as 0,which are not defined.
• Mat[0][0]=11, Mat[0][1]=0, Mat[0][2]=0
• Mat[1][0]=12, Mat[1][1]=13, Mat[1][2]=0
• Mat[2][0]=14, Mat[2][1]=15, Mat[2][2]=16
• Mat[3][0]=17, Mat[3][1]=0, Mat[3][2]=0

20-10-2023 Prof. Shilpa B V 7


Program to find sum of elements of a matrix
# include<stdio.h> for(i=0; i<n; i++)
void main() {
{ for(j=0; j<m; j++)
int a[10][10], n,m, sum=0, i,j; {
printf(“enter row and col size\n”); sum = sum +a[i][j]);
scanf(“%d%d”,&n,&m); }
printf(“Enter elements of array\n”); }
for(i=0; i<n; i++) printf(“\nSum of elements of array = %d\n”,sum);
{ }
for(j=0; j<m; j++)
{
scanf(“%d”, &a[i][j]);
}
20-10-2023 Prof. Shilpa B V 8
}
# include<stdio.h>
void main()
{
int a[10][10], row,col, sum=0, i,j;
• The input and sum
printf(“enter row and col size\n”); calculation can be
scanf(“%d%d”,&row,&col); combined in one nested
printf(“Enter elements of array\n”); loop itself.
for(i=0; i<row; i++)
{
for(j=0; j<col; j++)
{
scanf(“%d”, &a[i][j]);
sum = sum + a[i][j];
}
}
printf(“\nSum of elements of array = %d\n”,sum);
20-10-2023 Prof. Shilpa B V 9
}
# include<stdio.h>
Addition of two matrices
void main( ) if((row1 == row2) && ( col1 == col2))
{ {
int a[10][10], row1,col1, b[10][10], row2,col2; for(i=0; i<row1; i++)
int s[10][10], i,j; for(j=0; j<col1; j++)
printf(“enter row and col size of matrix 1\n”); s[i][j] = a[i][j] + b[i][j];
scanf(“%d%d”,&row1,&col1); printf(“sum of two arrays is : \n);
printf(“enter row and col size of matrix 2\n”); for(i=0; i<row1; i++)
scanf(“%d%d”,&row2,&col2); {
printf(“Enter elements of matrix1\n”); for(j=0; j<col1; j++)

for(i=0; i<row1; i++) { printf(“%d\t”, s[i][j]); }


printf(“\n”);
for(j=0; j<col1; j++)
}
scanf(“%d”, &a[i][j]);
} // closing of if…
printf(“Enter elements of matrix2\n”);
else
for(i=0; i<row2; i++)
printf(“rows and columns do not match\n”);
for(j=0; j<col2; j++)
} // closing of main
20-10-2023
scanf(“%d”, &b[i][j]); Prof. Shilpa B V 10
if(col1 == row2)
Matrix multiplication {
# include<stdio.h> for(i=0; i<row1; i++)
void main( ) for(j=0; j<col2; j++)
{ {
int a[10][10], row1,col1, b[10][10], row2,col2; p[i][j] = 0;
int s[10][10], i,j,k;
for(k=0; k<row2; k++)
printf(“enter row and col size of matrix 1\n”);
p[i][j] = p[i][j] + (a[i][k] * b[k][j]);
scanf(“%d%d”,&row1,&col1);
}
printf(“enter row and col size of matrix 2\n”);
printf(“Product of two arrays is : \n);
scanf(“%d%d”,&row2,&col2);
// display p matrix
printf(“Enter elements of matrix1\n”);
// Input matrix 1 elements
} // closing of if…
printf(“Enter elements of matrix2\n”); else
// Input matrix 1 elements printf(“rows and columns do not match\n”);
} // closing of main
20-10-2023 Prof. Shilpa B V 11
• Write a program to perform matrix subtraction
• Write a program to find sum of principle diagonal matrix
• Write a program to check if given matrix is Unit matrix or not
• Write a program to transpose the matrix – row to column, column to row

20-10-2023 Prof. Shilpa B V 12


Passing 2D arrays to functions
• 2D Array can be passed as an argument by call by reference, ie., the address
of the array is passed
• To pass multidimensional arrays to a function, only the name of the array is
passed to the function - similar to one-dimensional arrays
• In the function definition, when passing two-dimensional arrays, it is not
mandatory to specify the number of rows, but, the number of columns
should always be specified.

20-10-2023 Prof. Shilpa B V 13


Program to calculate the sum of array elements by passing
#include}

to a function
#include <stdio.h> void displayNumbers(int num[ ][2])
void displayNumbers(int num[2][2]); {
// code
void main( ) }
{
int num[5][5], n, m, i; OR

printf("Enter number of rows and columns:\n");


void displayNumbers(int n, int m,int num[2][2])
scanf(“%d%d”,&n,&m); {
for (int i = 0; i < n; ++i) printf("Displaying:\n");
for (int i = 0; i < 2; ++i)
{
{
for (int j = 0; j < m; ++j) for (int j = 0; j < 2; ++j)
scanf("%d", &num[i][j]); {
printf("%d\n", num[i][j]);
}
}
displayNumbers(n,m,num); }
} 20-10-2023 Prof. Shilpa B V
} 14
INTRODUCTION-Strings
● A string is a null-terminated character array. This means that after the last character, a
null character (‘\0’) is stored to signify the end of the character array.
● The general form of declaring a string is
char str[size];
● For example if we write, char
str[] = “HELLO”;
We are declaring a character array with 5 characters namely, H, E, L, L and O. Besides, a
null character (‘\0’) is stored at the end of the string. So, the internal representation of the
string becomes- HELLO’\0’. Note that to store a string of length 5, we need 5 + 1 locations
(1 extra for the null character).
The name of the character array (or the string) is a pointer to the beginning of the string.

str[0] 1000
H
str[1] 1001
E
str[2] 1002
L
str[3] 1003
L
str[4] 1004
O
str[5] 1005
Str[6] \0
1006
READING STRINGS
If we declare a string by writing char str[100];

Then str can be read from the user by using three ways.

using getchar()function repeatedly


The string can be read using scanf() by writing scanf(“%s”, str);
The string can be read by writing gets(str);

Note: gets() takes the starting address of the string which will hold the input. The string inputted using
gets() is automatically terminated with a null character.
The string can also be read by calling the getchar() repeatedly to read a sequence of single characters
(unless a terminating character is entered) and simultaneously storing it in a character array.
i=0;
getchar(ch);
while(ch != '*’)
{
str[i] = ch;
i++;
getchar(ch);
}
str[i] = '\0';
WRITING STRINGS
The string can be displayed on screen using three ways
● use printf() function
● using puts() function
● using putchar()function repeatedly
The string can be displayed using printf() by writing printf(“%s”, str);
The string can be displayed by writing puts(str);
The string can also be written by calling the putchar() repeatedly to print a sequence of single
characters
i=0;
while(str[i] != ‘\0’)
{
putchar(str[i]);
i++;
}

You might also like