0% found this document useful (0 votes)
60 views9 pages

Department of Computer Applications: T He Is Lamia Colle Ge of SC Ie NC e & Comme R C E, SR Inagar - J&K

The document describes arrays in the C programming language. It defines arrays as collections of data items of the same type that are accessed using a common name. It discusses declaring, initializing, and using one-dimensional arrays in C programs. It provides examples of declaring arrays with dimensions, initializing arrays fully or partially, and accessing array elements using indices. It also gives a sample program that calculates the first 20 Fibonacci numbers using a for loop and a one-dimensional array.

Uploaded by

nofiya yousuf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
60 views9 pages

Department of Computer Applications: T He Is Lamia Colle Ge of SC Ie NC e & Comme R C E, SR Inagar - J&K

The document describes arrays in the C programming language. It defines arrays as collections of data items of the same type that are accessed using a common name. It discusses declaring, initializing, and using one-dimensional arrays in C programs. It provides examples of declaring arrays with dimensions, initializing arrays fully or partially, and accessing array elements using indices. It also gives a sample program that calculates the first 20 Fibonacci numbers using a for loop and a one-dimensional array.

Uploaded by

nofiya yousuf
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Department of Computer Applications

T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

Course Name Problem solving using computers (B.Sc. 5th Sem)

Course Type Core

Credits (4 +2)

Coverage of Notes 4Credits

Units Covered Unit IV C Arrays

Compiled By Department Of Computer Applications

Source Compiled from resources available on various Internet

websites.

Purpose Educational.

Usage Can be used by student(s) for understating the concepts

regarding the course.

Further Readings / • The C programming Language., Pearson Ecl – Dennis

Recommended Books for the Ritchie

course • Let us C-Yashwant Kanetkar.

• Structured programming approach using C-Forouzah &

Ceilberg Thomson learning publication.

• How to solve it by computer, RG Dromey, PHI

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


1
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

Introduction to C Programming Arrays

• An array is a collection of data items, all of the same type, accessed using a common

name.

• A one-dimensional array is like a list; A two dimensional array is like a table; The C

language places no limits on the number of dimensions in an array, though specific

implementations may.

• Some texts refer to one-dimensional arrays as vectors, two-dimensional arrays

as matrices, and use the general term arrays when the number of dimensions is

unspecified or unimportant.

Declaring Arrays

• Array variables are declared identically to variables of their data type, except that the

variable name is followed by one pair of square [ ] brackets for each dimension of the

array.

• Uninitialized arrays must have the dimensions of their rows, columns, etc. listed within

the square brackets.

• Dimensions used when declaring arrays in C must be positive integral constants or

constant expressions.

o In C, dimensions must still be positive integers, but variables can be used, so

long as the variable has a positive value at the time the array is declared. (

Space is allocated only once, at the time the array is declared. The array does

NOT change sizes later if the variable used to declare it changes. )

• Examples:

int i, j, intArray[ 10 ], number;

float floatArray[ 1000 ];

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


2
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

int tableArray[ 3 ][ 5 ]; /* 3 rows by 5 columns */

const int NROWS = 100; // ( Old code would use #define NROWS 100 )

const int NCOLS = 200; // ( Old code would use #define NCOLS 200 )

float matrix[ NROWS ][ NCOLS ];

• C Only Example:

int numElements;

printf( "How big an array do you want? " );

scanf( "%d", &numElements );

if( numElements <= 0 ) {

printf( "Error - Quitting\n" );

exit( 0 );

double data[ numElements ]; // This only works in C, not in plain C

Initializing Arrays

• Arrays may be initialized when they are declared, just as any other variables.

• Place the initialization data in curly {} braces following the equals sign. Note the use

of commas in the examples below.

• An array may be partially initialized, by providing fewer data items than the size of the

array. The remaining array elements will be automatically initialized to zero.

• If an array is to be completely initialized, the dimension of the array is not

required. The compiler will automatically size the array to fit the initialized data. (

Variation: Multidimensional arrays - see below. )

• Examples:

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


3
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

int i = 5, intArray[ 6 ] = { 1, 2, 3, 4, 5, 6 }, k;

float sum = 0.0f, floatArray[ 100 ] = { 1.0f, 5.0f, 20.0f };

double piFractions[ ] = { 3.141592654, 1.570796327, 0.785398163 };

Designated Initializers:

• In C there is an alternate mechanism, that allows you to initialize specific

elements, not necessarily at the beginning.

• This method can be mixed in with traditional iniitalization

• For example:

int numbers[ 100 ] = { 1, 2, 3, [10] = 10, 11, 12, [60] = 50, [42] = 420 };

o In this example,the first three elements are initialized to 1, 2, and 3

respectively.

o Then element 10 ( the 11th element ) is initialized to 10

o The next two elements ( 12th and 13th ) are initialized to 11 and 12

respectively.

o Element number 60 ( the 61st ) is initialized to 50, and number 42 (

the 43rd ) to 420.

▪ ( Note that the designated initializers do not need to appear in

order. )

o As with traditional methods, all uninitialized values are set to zero.

o If the size of the array is not given, then the largest initialized position

determines the size of the array.

Using Arrays

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


4
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

• Elements of an array are accessed by specifying the index ( offset ) of the desired

element within square [ ] brackets after the array name.

• Array subscripts must be of integer type. ( int, long int, char, etc. )

• VERY IMPORTANT: Array indices start at zero in C, and go to one less than the size

of the array. For example, a five element array will have indices zero through

four. This is because the index in C is actually an offset from the beginning of the

array. ( The first element is at the beginning of the array, and hence has zero offset. )

• Landmine: The most common mistake when working with arrays in C is forgetting that

indices start at zero and stop one less than the array size.

• Arrays are commonly used in conjunction with loops, in order to perform the same

calculations on all ( or some part ) of the data items in the array.

Sample Programs Using 1-D Arrays

• The first sample program uses loops and arrays to calculate the first twenty Fibonacci

numbers. Fibonacci numbers are used to determine the sample points used in certain

optimization methods.

/* Program to calculate the first 20 Fibonacci numbers. */

#include <stdlib.h>

#include <stdio.h>

int main( void ) {

int i, fibonacci[ 20 ];

fibonacci[ 0 ] = 0;

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


5
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

fibonacci[ 1 ] = 1;

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

fibonacci[ i ] = fibonacci[ i - 2 ] + fibonacci[ i - 1 ];

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

printf( "Fibonacci[ %d ] = %f\n", i, fibonacci[ i ] );

} /* End of sample program to calculate Fibonacci numbers */

• Exercise: What is the output of the following program:

/* Sample Program Using Arrays */

#include <stdlib.h>

#include <stdio.h>

int main( void ) {

int numbers[ 10 ];

int i, index = 2;

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

numbers[ i ] = i * 10;

numbers[ 8 ] = 25;

numbers[ 5 ] = numbers[ 9 ] / 3;

numbers[ 4 ] += numbers[ 2 ] / numbers[ 1 ];

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


6
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

numbers[ index ] = 5;

++numbers[ index ];

numbers[ numbers[ index++ ] ] = 100;

numbers[ index ] = numbers[ numbers[ index + 1 ] / 7 ]--;

for( index = 0; index < 10; index++ )

printf( "numbers[ %d ] = %d\n" index, numbers[ index ] );

} /* End of second sample program */

Multidimensional Arrays

• Multi-dimensional arrays are declared by providing more than one set of square [ ]

brackets after the variable name in the declaration statement.

• One dimensional arrays do not require the dimension to be given if the array is to be

completely initialized. By analogy, multi-dimensional arrays do not require the

first dimension to be given if the array is to be completely initialized. All dimensions

after the first must be given in any case.

• For two dimensional arrays, the first dimension is commonly considered to be the

number of rows, and the second dimension the number of columns. We will use this

convention when discussing two dimensional arrays.

• Two dimensional arrays are considered by C/C++ to be an array of ( single dimensional

arrays ). For example, "int numbers[ 5 ][ 6 ]" would refer to a single dimensional

array of 5 elements, wherein each element is a single dimensional array of 6

integers. By extension, "int numbers[ 12 ][ 5 ][ 6 ]" would refer to an array of twelve

elements, each of which is a two dimensional array, and so on.

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


7
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

• Another way of looking at this is that C stores two dimensional arrays by rows, with all

elements of a row being stored together as a single unit. Knowing this can sometimes

lead to more efficient programs.

• Multidimensional arrays may be completely initialized by listing all data elements

within a single pair of curly {} braces, as with single dimensional arrays.

• It is better programming practice to enclose each row within a separate subset of curly

{} braces, to make the program more readable. This is required if any row other than

the last is to be partially initialized. When subsets of braces are used, the last item

within braces is not followed by a comma, but the subsets are themselves separated by

commas.

• Multidimensional arrays may be partially initialized by not providing complete

initialization data. Individual rows of a multidimensional array may be partially

initialized, provided that subset braces are used.

• Individual data items in a multidimensional array are accessed by fully qualifying an

array element. Alternatively, a smaller dimensional array may be accessed by partially

qualifying the array name. For example, if "data" has been declared as a three

dimensional array of floats, then data[ 1 ][ 2 ][ 5 ] would refer to a float, data[ 1 ][ 2 ]

would refer to a one-dimensional array of floats, and data[ 1 ] would refer to a two-

dimensional array of floats. The reasons for this and the incentive to do this relate to

memory-management issues that are beyond the scope of these notes.

Sample Program Using 2-D Arrays

/* Sample program Using 2-D Arrays */

#include <stdlib.h>

#include <stdio.h>

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


8
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS
Department of Computer Applications
T h e I s l a m i a C o l l e g e o f S c i e nc e & C o m m e r c e , Sr i n a g a r - J & K
(UGC- Autonomous)

int main( void ) {

/* Program to add two multidimensional arrays */

/* Written May 1995 by George P. Burdell */

int a[ 2 ][ 3 ] = { { 5, 6, 7 }, { 10, 20, 30 } };

int b[ 2 ][ 3 ] = { { 1, 2, 3 }, { 3, 2, 1 } };

int sum[ 2 ][ 3 ], row, column;

/* First the addition */

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

for( column = 0; column < 3; column++ )

sum[ row ][ column ] =

a[ row ][ column ] + b[ row ][ column ];

/* Then print the results */

printf( "The sum is: \n\n" );

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

for( column = 0; column < 3; column++ )

printf( "\t%d", sum[ row ][ column ] );

printf( '\n' ); /* at end of each row */

return 0;

COMPILED BY: PROF. NOFIYA YOUSUF MIR,


9
ASST. PROF. , DEPTT. OF COMPUTER APPLICATIONS

You might also like