Array Data Structure
Data Structure Array: The array is a non-primitive and linear data structure that is a group of similar data items. That is, it can store only one type of data. The array is used to store a group of data objects. The array is a static data structure that means we can allocate memory only in compile-time and cannot convert it to run-time.
Array Memory representation
The following figure represents an int type array in which is eight elements. The index of the array starts at 0 and ends at 7 due to 8 elements.
Need of the Array
An array is especially helpful when working with lots of variables of the same data-type.
For example, let's take a record of 100 employees, and now that record needs to be stored in the system. To solve this problem, either you have to create the 100 variables of int data-type or create an array of int type.
Program without array:
#include <stdio.h> #include <conio.h> void main () { int emp1_salary = 1500, emp2_salary = 500, emp3_salary = 500, emp4_salary = 1500, emp5_salary = 3500, emp6_salary = 2500, emp7_salary = 1500, emp8_salary = 4500, emp9_salary = 1500, emp10_salary = 500, emp11_salary = 2500, emp12_salary = 3500, emp13_salary = 4500, emp14_salary = 4000, emp15_salary =4500; float avg = (emp1_salary + emp2_salary + emp3_salary + emp4_salary + emp5_salary + emp6_salary + emp7_salary + emp8_salary + emp9_salary + emp10_salary + emp11_salary + emp12_salary + emp13_salary + emp14_salary + emp15_salary) / 15; printf(avg); }
Program by using array:
#include <stdio.h> #include <conio.h> void main () { int emp_salary [15] = {1500, 500, 500, 1500, 3500, 4500, 1500, 500, 1500, 3500, 4500, 2500, 3500, 4000, 4500); int i; float avg; for (i=0; i<15; i++) { avg = avg + emp_salary[i];}printf(avg);}
See both programs; the first program is complex than the second program because the line of code of the first program is more than the second program. Therefore, Array is the best option when working with lots of variables of the same data-type.
Types of Array
There are three types of Array, as shown in the following:
- One dimensional Array
- Two-dimensional Array
- Multi-dimensional Array
One dimensional Array
One-dimensional arrays are those arrays that contain only one subscript. It is used to store data in the linear form.
One-dimensional Array declaration:
data_type array_name[size];
For example:
int teacher[20]; float percentage[20]; char name[50];
Initializing One-Dimensional Array:
The array elements can be initialized after the array is declared. The initializer of the array is defined within braces and separated by commas.
int age[5] = {26,20,14,43,21};
Program of one-dimensional Array
#include<stdio.h> #include<conio.h> int main() { int array[4], i; for(i = 0; i < 4; i++) { printf("Enter a[%d] value: ", i);scanf("%d", &array[i]); } printf("\nPrinting elements of the array: \n\n");for(i = 0; i < 4; i++){printf("%d ", array[i]);}return 0; }
Output
Enter a[0] value: 10 Enter a[1] value: 20 Enter a[2] value: 30 Enter a[3] value: 40 Printing elements of the array: 10 20 30 40
Two-dimensional Array
Two-dimensional
arrays are those arrays that contain two subscripts. A two-dimensional array is
also known as the matrix. The first subscript of the Array is denoted the
number of rows in the array, and the second subscript is denoted the number of
columns in the array. The total number of
elements in a two-dimensional array is ROW*COLOUMN
.
One-dimensional Array declaration:
data_type array_name[row_size][coloum_size];
For example:
int teacher[20][30];
Initializing a Two-Dimensional Array:
int teacher[2][3] = {1, 2, 3, 7, 8, 6 };
#include<stdio.h> #define ROW 2 #define COL 3 int main() { int matrix1[ROW][COL], matrix2[ROW][COL], matrix3[ROW][COL]; int i, j; printf("Enter first matrix: \n\n"); for(i = 0; i < ROW; i++) { for(j = 0; j < COL; j++) { printf("Enter a[%d][%d]: ", i, j); scanf("%d", &matrix1[i][j]); } } printf("\nEnter Second matrix: \n\n"); for(i = 0; i < ROW; i++) { for(j = 0; j < COL; j++) { printf("Enter a[%d][%d]: ", i, j); scanf("%d", &matrix2[i][j]); } } for(i = 0; i < ROW; i++) { for(j = 0; j < COL; j++) { matrix3[i][j] = matrix1[i][j] + matrix2[i][j] ; } } printf("\nsum of array: \n\n"); for(i = 0; i < ROW; i++) { for(j = 0; j < COL; j++) { printf("%5d ", matrix3[i][j]); } printf("\n"); } return 0;}
Output
Enter first matrix: Enter a[0][0]: 22 Enter a[0][1]: 13 Enter a[0][2]: 43 Enter a[1][0]: 38 Enter a[1][1]: 94 Enter a[1][2]: 15 Enter Second matrix: Enter a[0][0]: 17 Enter a[0][1]: 26 Enter a[0][2]: 78 Enter a[1][0]: 44 Enter a[1][1]: 24 Enter a[1][2]: 80 sum of array: matrix1 + matrix2 = 39 39 121 82 118 95
Multi-dimensional Array (3-d)
Multi-dimensional arrays are those arrays that contain more than two subscripts. The multi-dimensional array is also known as the 3-d array.
Advantages of Array
The advantages of the array are the following:
- It can be easily implemented.
- Different data items of the same type can be displayed by just one name.
- It can store multiple data items at the same time.
Disadvantages of Array
The disadvantages of the array are the following:
- The array is a static data structure due to which its size is already defined.
- We have to traverse the entire array to delete and insert an element in the array.