0% found this document useful (0 votes)
80 views18 pages

C Programming Arrays

An array in C programming is a collection of data that holds a fixed number of values of the same type. Arrays allow storing multiple values in a single variable. There are two types of arrays - one-dimensional arrays and multi-dimensional arrays. One-dimensional arrays can be initialized during declaration by providing initial values inside curly braces. Multi-dimensional arrays can store arrays of arrays, representing tables of data. Arrays in C may be passed to functions by passing their starting memory address.

Uploaded by

Harshit Saraf
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
80 views18 pages

C Programming Arrays

An array in C programming is a collection of data that holds a fixed number of values of the same type. Arrays allow storing multiple values in a single variable. There are two types of arrays - one-dimensional arrays and multi-dimensional arrays. One-dimensional arrays can be initialized during declaration by providing initial values inside curly braces. Multi-dimensional arrays can store arrays of arrays, representing tables of data. Arrays in C may be passed to functions by passing their starting memory address.

Uploaded by

Harshit Saraf
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 18

C Programming Arrays

An array is a collection of data that holds fixed number of values of same type. For
example: if you want to store marks of 100 students, you can create an array for it.

float marks[100];

The size and type of arrays cannot be changed after its declaration.

Arrays are of two types:

1. One-dimensional arrays
2. Multidimensional arrays (will be discussed in next chapter)

How to declare an array in C?


data_type array_name[array_size];

For example,
float mark[5];

Here, we declared an array, mark, of floating-point type and size 5. Meaning, it can


hold 5 floating-point values.

Elements of an Array and How to access


them?
You can access elements of an array by indices.

Suppose you declared an array mark as above. The first element is mark[0], second
element is mark[1] and so on.

Few key notes:


 Arrays have 0 as the first index not 1. In this example, mark[0]
 If the size of an array is n, to access the last element, (n-1) index is used. In this
example, mark[4]
 Suppose the starting address of mark[0] is 2120d. Then, the next address, a[1], will
be 2124d, address of a[2] will be 2128d and so on. It's because the size of a float is
4 bytes.

How to initialize an array in C programming?


It's possible to initialize an array during declaration. For example,

int mark[5] = {19, 10, 8, 17, 9};

Another method to initialize array during declaration:

int mark[] = {19, 10, 8, 17, 9};


Here,

mark[0] is equal to 19

mark[1] is equal to 10

mark[2] is equal to 8

mark[3] is equal to 17

mark[4] is equal to 9

How to insert and print array elements?


int mark[5] = {19, 10, 8, 17, 9}

// insert different value to third element

mark[3] = 9;

// take input from the user and insert in third element

scanf("%d", &mark[2]);

// take input from the user and insert in (i+1)th element


scanf("%d", &mark[i]);

// print first element of an array

printf("%d", mark[0]);

// print ith element of an array

printf("%d", mark[i-1]);

Example: C Arrays
// Program to find the average of n (n < 10) numbers using arrays

#include <stdio.h>
int main()
{
int marks[10], i, n, sum = 0, average;
printf("Enter n: ");
scanf("%d", &n);
for(i=0; i<n; ++i)
{
printf("Enter number%d: ",i+1);
scanf("%d", &marks[i]);
sum += marks[i];
}
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

Important thing to remember when working with C


arrays
Suppose you declared an array of 10 elements. Let's say,

int testArray[10];

You can use the array members from testArray[0] to testArray[9].

If you try to access array elements outside of its bound, let's say testArray[12], the
compiler may not show any error. However, this may cause unexpected output
(undefined behavior).

Before going further, checkout these array articles:

 How to pass arrays to a function?


 Relation between arrays and pointers
 Multidimensional arrays
C Programming Multidimensional
Arrays
In C programming, you can create an array of arrays known as multidimensional
array. 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 table with 3 row and each row has 4 column.

Similarly, you can declare a three-dimensional (3d) array. For example,

float y[2][4][3];

Here,The array y can hold 24 elements.

You can think this example as: Each 2 elements have 4 elements, which makes 8
elements and each 8 elements can have 3 elements. Hence, the total number of
elements is 24.

How to initialize a multidimensional array?


There is more than one way to initialize a multidimensional array.
Initialization of a two dimensional array
// Different ways to initialize two dimensional array

int c[2][3] = {{1, 3, 0}, {-1, 5, 9}};

int c[][3] = {{1, 3, 0}, {-1, 5, 9}};

int c[2][3] = {1, 3, 0, -1, 5, 9};

Above code are three different ways to initialize a two dimensional arrays.

Initialization of a three dimensional array.


You can initialize a three dimensional array in a similar way like a two dimensional
array. Here's an example,

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} }

};

Example #1: Two Dimensional Array to store and


display values
// C program to store temperature of two cities for a week and display
it.
#include <stdio.h>
const int CITY = 2;
const int WEEK = 7;

int main()
{
int temperature[CITY][WEEK];
for (int i = 0; i < CITY; ++i) {
for(int j = 0; j < WEEK; ++j) {
printf("City %d, Day %d: ", i+1, j+1);
scanf("%d", &temperature[i][j]);
}
}

printf("\nDisplaying values: \n\n");


for (int i = 0; i < CITY; ++i) {
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

City 2, Day 6 = 25

City 2, Day 7 = 26

Example #2: Sum of two matrices using Two


dimensional arrays
C program to find the sum of two matrices of order 2*2 using multidimensional
arrays.

#include <stdio.h>
int main()
{
float a[2][2], b[2][2], c[2][2];
int i, j;

// Taking input using nested for loop


printf("Enter elements of 1st matrix\n");
for(i=0; i<2; ++i)
for(j=0; j<2; ++j)
{
printf("Enter a%d%d: ", i+1, j+1);
scanf("%f", &a[i][j]);
}

// Taking input using nested for loop


printf("Enter elements of 2nd matrix\n");
for(i=0; i<2; ++i)
for(j=0; j<2; ++j)
{
printf("Enter b%d%d: ", i+1, j+1);
scanf("%f", &b[i][j]);
}

// adding corresponding elements of two arrays


for(i=0; i<2; ++i)
for(j=0; j<2; ++j)
{
c[i][j] = a[i][j] + b[i][j];
}

// Displaying the sum


printf("\nSum Of Matrix:");

for(i=0; i<2; ++i)


for(j=0; j<2; ++j)
{
printf("%.1f\t", c[i][j]);

if(j==1)
printf("\n");
}
return 0;
}

Ouput
Enter elements of 1st matrix

Enter a11: 2;

Enter a12: 0.5;

Enter a21: -1.1;

Enter a22: 2;

Enter elements of 2nd matrix

Enter b11: 0.2;

Enter b12: 0;

Enter b21: 0.23;

Enter b22: 23;

Sum Of Matrix:

2.2 0.5

-0.9 25.0

Example 3: Three Dimensional Array


C Program to store values entered by the user in a three-dimensional array
and display it.

#include <stdio.h>
int main()
{
// this array can store 12 elements
int i, j, k, test[2][3][2];

printf("Enter 12 values: \n");

for(i = 0; i < 2; ++i) {


for (j = 0; j < 3; ++j) {
for(k = 0; k < 2; ++k ) {
scanf("%d", &test[i][j][k]);
}
}
}

// Displaying values with proper index.

printf("\nDisplaying values:\n");

for(i = 0; i < 2; ++i) {


for (j = 0; j < 3; ++j) {
for(k = 0; k < 2; ++k ) {
printf("test[%d][%d][%d] = %d\n", i, j, k, test[i][j]
[k]);
}
}
}

return 0;
}

Output

Enter 12 values:

1
2

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

How to pass arrays to a function in


C Programming?
In C programming, a single array element or an entire array can be passed to
a function.

This can be done for both one-dimensional array or a multi-dimensional array.

Passing One-dimensional Array In Function


Single element of an array can be passed in similar manner as passing variable to a
function.

C program to pass a single element of an array to function

#include <stdio.h>
void display(int age)
{
printf("%d", age);
}

int main()
{
int ageArray[] = { 2, 3, 4 };
display(ageArray[2]); //Passing array element ageArray[2] only.
return 0;
}

Output

Passing an entire one-dimensional array to a function


While passing arrays as arguments to the function, only the name of the array is
passed (,i.e, starting address of memory area is passed as argument).

C program to pass an array containing age of person to a function. This


function should find average age and display the average age in main function.

#include <stdio.h>
float average(float age[]);

int main()
{
float avg, age[] = { 23.4, 55, 22.6, 3, 40.5, 18 };
avg = average(age); /* Only name of array is passed as argument. */
printf("Average age=%.2f", avg);
return 0;
}

float average(float age[])


{
int i;
float avg, sum = 0.0;
for (i = 0; i < 6; ++i) {
sum += age[i];
}
avg = (sum / 6);
return avg;
}

Output

Average age=27.08

Passing Multi-dimensional Arrays to


Function
To pass two-dimensional array to a function as an argument, starting address of
memory area reserved is passed as in one dimensional array

#Example: Pass two-dimensional arrays to a function


#include <stdio.h>
void displayNumbers(int num[2][2]);
int main()
{
int num[2][2], i, j;
printf("Enter 4 numbers:\n");
for (i = 0; i < 2; ++i)
for (j = 0; j < 2; ++j)
scanf("%d", &num[i][j]);
// passing multi-dimensional array to displayNumbers function
displayNumbers(num);
return 0;
}

void displayNumbers(int num[2][2])


{
// Instead of the above line,
// void displayNumbers(int num[][2]) is also valid
int i, j;
printf("Displaying:\n");
for (i = 0; i < 2; ++i)
for (j = 0; j < 2; ++j)
printf("%d\n", num[i][j]);
}

Output

Enter 4 numbers:

Displaying:

You might also like