Page Stats
Visitor: 1060
Double-Dimensional Arrays or 2d-Arrays

Double-Dimensional Arrays or 2d-Arrays are the combination of rows and columns. Normally, a 2D-Array is use to represent data in the form of matrix.
Syntax to declare 2d-Arrays:
int a[3][3]; //3 rows and 3 columns
In the above syntax, 1st square bracket represents number of rows and 2nd square bracket represent number of columns. The above declaration tells the compiler that we are declaring 3 rows and 3 columns total 9 elements. We can specify any value in row and column.
Example 1: Input 3x3 matrix and print it.
#include<stdio.h> #include<conio.h> void main() { int i, j, a[3][3]; clrscr(); printf("Enter 3x3 matrix"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } printf("Your 3x3 matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("\t%d",a[i][j]); } printf("\n"); } getch(); }
Initialization of 2D Array
int a[3][3] = {{10,20,30}, {40,50,60}, {70,80,90} };
Example 2: WAP to initialize the matrix.
void main() { int a[3][3] = {{10,20,30}, {40,50,60}, {70,80,90} }; int i, j; clrscr(); printf("\n3x3 Matrix is:\n"); for(i=0;i<2;i++) { for(j=0;j<2;j++) { printf("%d ",a[i][j]); } printf("\n"); } getch(); }
Exercise Question: 2D-Arrays
- Input 3x3 matrix and transpose it.
- Input 3x3 matrix and find Row-wise sum, column-wise sum and diagonals.
- Find sum of upper and lower triangular matrices.
- Find whether the input matrix is symmetric or not.
- Input two 3x3 matrix and print them.
- Input two 3x3 matrix and check matrices are equal or not.
- Input two 3x3 matrix and sum them.
- Input two 3x3 matrix and multiple them.
void main() { int a[3][3], i, j; clrscr(); printf("Enter matrix"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } printf("Input Matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",a[i][j]); } printf("\n"); } printf("\nTranspose of a Matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",a[j][i]); } printf("\n"); } getch(); }
void main() { int a[3][3], i, j, r1=0, r2=0, r3=0, c1=0, c2=0, c3=0, d1=0, d2=0; clrscr(); printf("Enter 3x3 matrix"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } printf("\nInput matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",a[i][j]); } printf("\n"); } for(i=0;i<=2;i++) //row { for(j=0;j<=2;j++) //col { if(i==0) r1=r1+a[i][j]; if(i==1) r2=r2+a[i][j]; if(i==2) r3=r3+a[i][j]; if(j==0) c1=c1+a[i][j]; if(j==1) c2=c2+a[i][j]; if(j==2) c3=c3+a[i][j]; if(i==j) d1=d1+a[i][j]; if(i+j==2) d2=d2+a[i][j]; } } printf("\nSum of 1st row = %d",r1); printf("\nSum of 2nd row = %d",r2); printf("\nSum of 3rd row = %d",r3); printf("\nSum of 1st column = %d",c1); printf("\nSum of 2nd column = %d",c2); printf("\nSum of 3rd column = %d",c3); printf("\nSum of 1st diagonal = %d",d1); printf("\nSum of 2nd diagonal = %d",d2); getch(); }
void main() { int a[3][3], i, j, upper=0, lower=0; clrscr(); printf("Enter 3x3 matrix"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } printf("\nInput matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",a[i][j]); } printf("\n"); } for(i=0;i<=2;i++) //row { for(j=0;j<=2;j++) //col { if(i<=j) upper = upper +a[i][j]; if(i>=j) lower = lower+a[i][j]; } } printf("\nSum of Upper triangular matrix = %d",upper); printf("\nSum of Lower triangular matrix = %d",lower); getch(); }
void main() { int a[3][3], b[3][3], i, j, isSymmetric=1; printf("Enter 3*3 matrix :"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } clrscr(); printf("A matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",a[i][j]); } printf("\n"); } for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { b[i][j] = a[j][i]; } } printf("Transpose of a matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",b[i][j]); } printf("\n"); } for(i=0; i<=2; i++) { for(j=0; j<=2; j++) { if(a[i][j] != b[i][j]) { isSymmetric = 0; break; } } } if(isSymmetric) { printf("\nInput Matrix is Symmetric."); } else { printf("\nInput Matrix is NOT Symmetric."); } getch(); }
#include<stdio.h> #include<conio.h> void main() { int i, j, a[3][3], b[3][3]; clrscr(); printf("Enter 1st 3x3 matrix"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } printf("Enter 2nd 3x3 matrix"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&b[i][j]); } } printf("Your 1st 3x3 matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("\t%d",a[i][j]); } printf("\n"); } printf("Your 2nd 3x3 matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("\t%d",b[i][j]); } printf("\n"); } getch(); }
void main() { int a[3][3], b[3][3], i, j, isSymmetric=1; printf("Enter 3*3 matrix :"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { scanf("%d",&b[i][j]); } } clrscr(); printf("A matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",a[i][j]); } printf("\n"); } printf("B matrix is:\n"); for(i=0;i<=2;i++) { for(j=0;j<=2;j++) { printf("%d ",b[i][j]); } printf("\n"); } for(i=0; i<=2; i++) { for(j=0; j<=2; j++) { if(a[i][j] != b[i][j]) { isSymmetric = 0; break; } } } if(isSymmetric) { printf("\nBoth matrix are equal."); } else { printf("\nMatrix are not equal."); } getch(); }