Ee1101 Workshop06 Arrays

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

Workshop 6

Arrays - Working on Set of Data

6.1 Array
ˆ An array of variables can be declared as
variable_type array_name[number\_of\_elements];
ˆ Individual variables of an array are called elements.

ˆ Elements of array are accessed by using an index as


variable_name[index],
where index= 0, 1, . . . , (number of elements − 1) and specifies the offset from the first element.
ˆ First element of the array is accessed by the index of value 0.

ˆ The use of array is given by an example in the Listing 6.1.

Listing 6.1: Use of array.

double marks [5] , total , average ;


columns
columns co
columns
columns co
columns
columns
marks [0] = 41.5; co
columns
columns
marks [1] = 67.3; co
columns
columns
marks [2] = 81.7; co
columns
columns
marks [3] = 43.0; co
columns
columns
marks [4] = 55.1; co
columns
columns co
columns
columns
total = marks [0] + marks [1] + marks [2] + marks [3] + marks [4] + marks [5]; co
columns
columns
average = total / 5.0; co

6.1.1 Use of Arrays in Loops


ˆ Typical use of arrays in a loop is illustrated in the Listing 6.2.

Initialization of Numerical Arrays


int values[5] = {10, 22, 33, 17, 50};

Exercise 6.1 Find the maximum number of user given 10 numbers.


Exercise 6.2 Find the minimum number of user given 10 numbers.
Exercise 6.3 Find the average of user given 10 numbers.

Exercise 6.4 Sort user given 10 numbers in ascending order. (Hint. You may use Bubble Sort)
Exercise 6.5 Sort user given 10 numbers in descending order.

1
Listing 6.2: Use of array in loops.

columns
columns
# include < stdio .h > co
columns
columns co
# define NumSTD 5
columns
columns co
columns
columns co
int main ( void )
columns
columns co
columns
columns
{ co
double marks [ NumSTD ] , average , total ;
columns
columns co
columns
columns
int i ; co
columns
columns co
columns
columns
for ( i =0; i < NumSTD ;++ i ) co
columns
columns
{ co
columns printf ( " \ nEnter Marks of Student % d : " , i +1) ;
columns co
columns
columns scanf ( " % lf " , & marks [ i ]) ; co
}
columns
columns co
columns
columns co
for ( i =0 , total =0 ; i < NumSTD ;++ i )
columns
columns co
columns
columns
{ co
columns
columns total += marks [ i ]; co
}
columns
columns co
columns
columns co
columns
columns
average = total / 5.0; co
columns
columns co
printf ( " \ nAvarage = %.2 lf \ n " , average ) ;
columns
columns co
columns
columns co
return 0;
columns
columns co
columns
columns
} co

6.2 C-Strings
ˆ In C language, there is no special data type to store text strings.
ˆ Character arrays are used to store such text.
ˆ Each element of the array stores one character of the text.
ˆ End of the string is indicated by ’\0’

The program in Listing 6.3 asks user to enter his/her name. The entered name is stored in str which is
an array of type char. scanf stores the user entered string as a C-string in str. Therefore, it is possible to
identify the size of the string (number of characters in the name) by using a simple while loop.

Initialization of C-Strings
char letters1[] = {’H’, ’e’, ’l’, ’l’, ’o’, ’\0’};
char letters2[] = "Hello";
char mayName[] = "Tom and Jerry";

Exercise 6.1 User enters a paragraph that may consists of any of the keyboard characters. Find the number
of (Refer to program in Listing 6.4 for sample calculation of number of digits.)
ˆ characters.
ˆ digits.
ˆ letters.
ˆ white spaces (i.e. ’\n’, ’\t’, ’\r’, and spaces)
ˆ capital letters
ˆ simple letters
ˆ sentences.
ˆ words.
ˆ occurrences of the word ”the”
2
Listing 6.3: c Strings

columns
columns
# include < stdio .h > co
columns
columns co
int main ()
columns
columns co
columns
columns
{ co
char str [100];
columns
columns co
columns
columns
int i ; co
printf ( " What is your name ? : " ) ;
columns
columns co
columns
columns
scanf ( " % s " , & str [0]) ; co
columns
columns co
columns
columns co
columns
columns
i =0; co
while ( str [ i ]!= ’ \0 ’)
columns
columns co
columns
columns
{ co
columns ++ i ;
columns co
columns
columns
} co
columns
columns co
columns
columns
printf ( " Your name : \ n " ) ; co
columns
columns
printf ( " \ t % s \ n " , str ) ; co
printf ( " \ tNumber of characters = % d \ n " , i ) ;
columns
columns co
columns
columns
printf ( " \ tFirst letter = % c \ n " , str [0]) ; co
columns
columns
printf ( " \ tLast letter = % c \ n " , str [i -1]) ; co
columns
columns co
return 0;
columns
columns co
columns
columns
} co

Exercise 6.2 User enter a text, which may contain spaces.

ˆ Display the length (size or number of characters) of it.


ˆ Display it in reverse order.
ˆ Check if it contains the word the.

Exercise 6.3 User enter two text strings, which may contain spaces. Compare if they are the same or not
regarding the case.

Exercise 6.4 User enter two text strings, which may contain spaces. Compare if they are the same or not
disregarding the case.

6.3 Two Dimensional Arrays


Exercise 6.5 Execute the program in Listing 6.5.

—-

3
Listing 6.4: c Strings

columns
columns co
columns
columns
# include < stdio .h > co
columns
columns
# include < stdlib .h > co
columns
columns co
int main ()
columns
columns co
columns
columns
{ co
char str [500];
columns
columns co
columns
columns
int i , nDigits ; co
columns
columns
printf ( " Enter a paragraph ( max 500 characters ) for analysis :\ n " ) ; co
printf ( " Enter Ctrl + c to end the paragraph .\ n " ) ;
columns
columns co
columns
columns co
scanf ( " %501 c " , str ) ;
columns
columns co
columns
columns co
i =0; nDigits =0;
columns
columns co
columns
columns
while ( str [ i ]!= ’ \0 ’) co
{
columns
columns co
columns
columns if ( str [ i ] >= ’0 ’ && str [ i ] < ’9 ’) ++ nDigits ; co
columns ++ i ;
columns co
columns
columns
} co
columns
columns co
printf ( " Number of digits = % d " , nDigits ) ;
columns
columns co
columns
columns co
return 0;
columns
columns co
columns
columns
} co

Listing 6.5: Use of 2 Dimentional array to store C-Stirings

# include < stdio .h >


columns
columns co
columns
columns co
columns
columns
# define N 5 co
columns
columns co
columns
columns
int main ( void ) co
columns
columns
{ co
columns
columns
char names [5][100]; co
columns
columns
int i , c , C ; co
columns
columns co
columns
columns
i =0; while ( i ++ < N ) co
columns
columns
{ co
columns
columns printf ( " \ nEnter name [% d ] = " , i ) ; co
columns
columns scanf ( " %99 c " , & names [ i ][0]) ; co
}
columns
columns co
columns
columns co
columns
columns
printf ( " \ n \ nSorted Names in Alphebetical Order " ) ; co
columns
columns
printf ( " \ n = = = = = = = = = = = = = = = = = = = = = = = = = = = = = " ) ; co
columns
columns
c = ’a ’; C = ’A ’; co
columns
columns
while (c <= ’z ’) co
columns
columns
{ i =0; while ( i ++ < N ) co
columns
columns { if ( names [ i ][0] == c || names [ i ][0] == C ) co
columns
columns printf ( " \ n % s " , & names [ i ][0]) ; co
columns
columns } co
columns
columns c ++; C ++; co
columns
columns
} co
columns
columns
return 0; co
columns
columns
} co

You might also like