Array in C Programming | C Programming

Array in C Array in C Programming

The C language provides a capability that enables the user to define a set of ordered data items known as an array. Suppose we had a set of grades that we wished to read into the computer and suppose we wished to perform some operations on these grades, we will quickly realize that we cannot perform such an operation until each and every grade has been entered since it would be quite a tedious task to declare each and every student grade as a variable especially since there may be a very large number. In C we can define a variable called grade, which represents not a single value of grade but an entire set of grades. Each element of the set can then be referenced by means of a number called an index number or subscript.

Declaration of arrays

Like any other variable arrays must be declared before they are used. The general form of declaration is:
type variable-name [50];

The type specifies the type of the elements that will be contained in the array, such as int float or char and the size indicates the maximum number of elements that can be stored inside the array for ex:
float height [50];

Declares the height to be an array containing 50 real elements. Any subscripts 0 to 49 are valid. In C the array elements index or subscript begins with the number zero. So height [0] refers to the first element of the array. (For this reason, it is easier to think of it as referring to element number zero, rather than as referring to the first element).

An individual array element can be used anywhere that a normal variable with a statement such as
G = grade [50]; 

The statement assigns the value stored in the 50th index of the array to the variable g. More generally if i is declared to be an integer variable, then the statement g=grades [i]; Will take the value contained in the element number i of the grades array to assign it to g. so if I were equal to 7 when the above statement is executed, then the value of grades [7] would get assigned to g. A value is stored into an element in the array simply by specifying the array element on the left-hand side of the equals sign. In the statement
grades [100] =95;

The value 95 is stored in the element number 100 of the grades array. The ability to represent a collection of related data items by a single array enables us to develop concise and efficient programs. For example, we can very easily sequence through the elements in the array by varying the value of the variable that is used as a subscript in the array. So the for loop
for (i=0;i < 100;++i);
sum = sum + grades [i];

Will sequence through the first 100 elements of the array grades (elements 0 to 99) and will add the values of each grade into the sum. When the for loop is finished, the variable sum will then contain the total of the first 100 values of the grades array (Assuming the sum was set to zero before the loop was entered) Just as variables arrays must also be declared before they are used. The declaration of an array involves the type of element that will be contained in the array such as int, float, or char as well as the maximum number of elements that will be stored inside the array. The C system needs this latter information in order to determine how much memory space to reserve for the particular array.

The declaration int values [10]; would reserve enough space for an array called values that could hold up to 10 integers. Refer to the below-given picture to conceptualize the reserved storage space.
values [0]
values [1]
values [2]
values [3]
values [4]
values [5]
values [6]
values [7]
values [8]
values [9]

Initialization of arrays

We can initialize the elements in the array in the same way as the ordinary variables when they are declared. The general form of initialization off arrays is:
type array name[size]= {list of values};

The values in the list care separated by commas, for example the statement int number [3] = {0,0,0};

Will declare the array size as an array of size 3 and will assign zero to each element if the number of values in the list is less than the number of elements, then only that many elements are initialized. The remaining elements will be set to zero automatically.

In the declaration of an array the size may be omitted, in such cases, the compiler allocates enough space for all initialized elements. For example, the statement

int counter [] = {1,1,1,1}; Will declare the array to contain four elements with initial values 1. This approach works fine as long as we initialize every element in the array.

Complete the given points 

#include<stdio.h>        
int main()  
{
  int a[50],n,count_neg=0,count_pos=0,i;        
  printf("Enter the size of the array\n");        
  scanf("%d",&n);          
  printf("Enter the elements of the array\n");        
  for (i=0;i < n;i++)        
    scanf("%d",&a[i]);          
  for(i=0;i < n;i++)        
  {              
    if(a[i] < 0)                      
      count_neg++;                
    else                      
      count_pos++;        
  }          
  printf("There are %d negative numbers in the array\n",count_neg);        
  printf("There are %d positive numbers in the array\n",count_pos);
  return 0;
}

Output

Array

Multi-dimensional Arrays

Often there is a need to store and manipulate two-dimensional data structures such as matrices & tables. Here the array has two subscripts. One subscript denotes the row & the other the column.
The declaration of two-dimension arrays is as follows:
datatype array_name[row_size] [column_size];
int m [10] [20]

Here m is declared as a matrix having 10 rows (numbered from 0 to 9) and 20 columns (numbered 0 through 19). The first element of the matrix is m [0][0] and the last row the last column is m [9] [19]. 

Elements of multi-dimension arrays

A 2-dimensional array marks [4][3] are shown below figure. The first element is given by marks [0][0] contains 35.5 & second element is marks [0][1] and contains 40.5 and so on.

marks [0][0]   marks [0][1]   marks [0][2]

 35.5                    40.5                45.5

marks [1][0]   marks [1][1]   marks [1][2]

50.5                       55.5             60.5

marks [2][0]   marks [2][1]   marks [2][2]

marks [3][0]   marks [3][1]   marks [3][2] 

Initialization of multidimensional arrays

Like the one-dimension arrays, two-dimension arrays may be initialized by following their declaration with a list of initial values enclosed in braces
Example: int table [2][3] = {0,0,0,1,1,1};

Initializes the elements of the first row to zero and the second row to 1. The initialization is done row by row. The above statement can be equivalently written as
int table [2][3] = {{0,0,0}, {1,1,1}}

By surrounding the elements of each row with braces.
C allows arrays of three or more dimensions. The compiler determines the maximum number of dimensions. The general form of a multidimensional array declaration is:

date_type array_name[s1][s2][s3]…..[sn];

Where s is the size of the ith dimension.

Some examples are:

 int survey [3][5][12];

 float table [5][4][5][3];

The survey is a 3-dimensional array declared to contain 180 integer elements. Similarly, the table is a four-dimensional array containing 300 elements of floating-point type.

Comments

Popular posts from this blog

C Program for SCAN Disk Scheduling Algorithm | C Programming

C Program To Check The String Is Valid Identifier Or Not | C Programming

C program to Find Cartesian Product of Two Sets | C programming