CArrays
CArrays
C Arrays
Arrays in C
An array is a variable that can store multiple values. For example, if you want
to store 100 integers, you can create an array for it.
int data[100];
dataType arrayName[arraySize];
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
For example,
float mark[5];
Suppose you declared an array mark as above. The first element is mark[0] , the
second element is mark[1] and so on.
Declare an Array
Few keynotes:
• Arrays have 0 as the first index, not 1. In this example, mark[0] is the
first element.
• If the size of an array is n , to access the last element, the n-1 index is
used. In this example, mark[4]
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
Here, we haven't specified the size. However, the compiler knows its size is 5
as we are initializing it with 5 elements.
Initialize an Array
Here,
mark[0] is equal to 19
mark[1] is equal to 10
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
mark[2] is equal to 8
mark[3] is equal to 17
mark[4] is equal to 9
Here's how you can take input from the user and store it in an array element.
// Program to take 5 values from the user and store them in an array
// Print the elements stored in the array
#include <stdio.h>
int main() {
int values[5];
Output
Enter 5 integers: 1
-3
34
0
3
Displaying integers: 1
-3
34
0
3
Here, we have used a for loop to take 5 inputs from the user and store them
in an array. Then, using another for loop, these elements are displayed on the
screen.
#include <stdio.h>
int main()
{
int marks[10], i, n, sum = 0, average;
average = sum/n;
printf("Average = %d", average);
return 0;
}
Output
Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39
int testArray[10];
Now let's say if you try to access testArray[12] . The element is not available.
This may cause unexpected output (undefined behavior). Sometimes you
might get an error and some other time your program may run correctly.
Hence, you should never access elements of an array outside of its bound.
C Multidimensional Arrays
In this tutorial, you will learn to work with multidimensional arrays (two-
dimensional and three-dimensional arrays) with the help of examples.
In C programming, you can create an array of arrays. These arrays are known
as multidimensional arrays. For example,
float x[3][4];
Here, x is a two-dimensional (2d) array. The array can hold 12 elements. You
can think the array as a table with 3 rows and each row has 4 columns.
float y[2][4][3];
Initialization of a 2d array
Initialization of a 3d array
int test[2][3][4] = {
{{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}},
{{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}};
{
for (int j = 0; j < WEEK; ++j)
{
printf("City %d, Day %d = %d\n", i + 1, j + 1, temperature[i][j]);
}
}
return 0;
}
Output
City 1, Day 1: 33
City 1, Day 2: 34
City 1, Day 3: 35
City 1, Day 4: 33
City 1, Day 5: 32
City 1, Day 6: 31
City 1, Day 7: 30
City 2, Day 1: 23
City 2, Day 2: 22
City 2, Day 3: 21
City 2, Day 4: 24
City 2, Day 5: 22
City 2, Day 6: 25
City 2, Day 7: 26
Displaying values:
City 1, Day 1 = 33
City 1, Day 2 = 34
City 1, Day 3 = 35
City 1, Day 4 = 33
City 1, Day 5 = 32
City 1, Day 6 = 31
City 1, Day 7 = 30
City 2, Day 1 = 23
City 2, Day 2 = 22
City 2, Day 3 = 21
City 2, Day 4 = 24
City 2, Day 5 = 22
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
City 2, Day 6 = 25
City 2, Day 7 = 26
#include <stdio.h>
int main()
{
float a[2][2], b[2][2], result[2][2];
if (j == 1)
printf("\n");
}
return 0;
}
Output
Sum Of Matrix:
2.2 0.5
-0.9 25.0
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
#include <stdio.h>
int main()
{
int test[2][3][2];
printf("\nDisplaying values:\n");
for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
{
for (int k = 0; k < 2; ++k)
{
printf("test[%d][%d][%d] = %d\n", i, j, k, test[i][j][k]);
}
}
}
return 0;
}
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
Output
Enter 12 values:
1
2
3
4
5
6
7
8
9
10
11
12
Displaying Values:
test[0][0][0] = 1
test[0][0][1] = 2
test[0][1][0] = 3
test[0][1][1] = 4
test[0][2][0] = 5
test[0][2][1] = 6
test[1][0][0] = 7
test[1][0][1] = 8
test[1][1][0] = 9
test[1][1][1] = 10
test[1][2][0] = 11
test[1][2][1] = 12
#include <stdio.h>
void display(int age1, int age2) {
printf("%d\n", age1);
printf("%d\n", age2);
}
int main() {
int ageArray[] = {2, 8, 4, 12};
Output
8
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
Here, we have passed array parameters to the display() function in the same
way we pass variables to a function.
We can see this in the function definition, where the function parameters are
individual variables:
#include <stdio.h>
float calculateSum(float num[]);
int main() {
float result, num[] = {23.4, 55, 22.6, 3, 40.5, 18};
return sum;
}
Output
Result = 162.50
To pass an entire array to a function, only the name of the array is passed as
an argument.
result = calculateSum(num);
This informs the compiler that you are passing a one-dimensional array to the
function.
#include <stdio.h>
void displayNumbers(int num[2][2]);
int main() {
int num[2][2];
printf("Enter 4 numbers:\n");
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 2; ++j) {
scanf("%d", &num[i][j]);
}
}
return 0;
}
Output
Enter 4 numbers:
2
3
4
5
Displaying:
2
3
C PROGRAMMING MOB: 9891097875
BY: ER. SANDEEP SINGH
10+ year of Industry Experience in S/W Development
B.Tech, M.Tech (Thapar University, Patiala(Punjab))
4
5
Notice the parameter int num[2][2] in the function prototype and function
definition:
// function prototype
void displayNumbers(int num[2][2]);
For example,