0% found this document useful (0 votes)
33 views26 pages

Module 3psp

Module 3 of the C Programming for Problem Solving course focuses on arrays, explaining their necessity for storing multiple values efficiently compared to individual variables. It covers definitions, types of arrays (one-dimensional, two-dimensional, and multidimensional), initialization methods, and operations such as sorting and searching. The module also includes examples of using arrays with functions to demonstrate practical applications in programming.

Uploaded by

shobhabk878
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)
33 views26 pages

Module 3psp

Module 3 of the C Programming for Problem Solving course focuses on arrays, explaining their necessity for storing multiple values efficiently compared to individual variables. It covers definitions, types of arrays (one-dimensional, two-dimensional, and multidimensional), initialization methods, and operations such as sorting and searching. The module also includes examples of using arrays with functions to demonstrate practical applications in programming.

Uploaded by

shobhabk878
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/ 26

Module 3 C Programming for Problem Solving

MODULE 3

CHAPTER 1: ARRAYS

1. WHY DO WE NEED ARRAYS?


Say we have a problem in our hand to store marks scored by 50 students in C language subject. To
store 50 marks we have to declare 50 variables of integer data type as shown below:
int marks_1, marks_2, marks_3, marks_4… .................... marks_50;

Now suppose we have to store values into these variables then 50 scanf statements or initializing 50
values has to be done as shown:
scanf(“%d”, &marks_1);
scanf(“%d”, &marks_2);
scanf(“%d”, &marks_3);
………………..scanf(“%d”, &marks_50);
OR
marks_1= 25;
marks_2=23;
marks_3=20;
………….. so on marks_50=21;

marks_1 25 marks_2 23 marks_3 20

marks_4 15 So on………… marks_50 21

This style of programming is fine for a small set of values. But if we have to store 1000 or 10000
values declaring so many variables is a cumbersome process. Alternative solution is Arrays!

2. DEFINITION OF ARRAYS

 The array is a fixed-size sequenced collection of elements of same data type.


 The array is a collection of homogeneous elements of same data type.
 Array groups the data items of similar types sharing the common name.
Module 3 C Programming for Problem Solving

 Arrays are called as subscripted variables because; it is accessed using


subscripts/indexes.
 Ex: 1. List of employees in an organization.
2. List of products and their cost sold by a store.
3. Test scores of a class of students.

 Heremarks[0]=10, marks[1]=20, marks[2]=30 and marks[3]=40. This


subscript/index notation is borrowed from Mathematics where we have the practice of
writing: marks4, marks3, marks2 and so on.
 In C the array index starts with 0.
3. TYPES OF ARRAYS

I. One dimensional arrays/Single-Subscripted Variable


II. Two dimensional arrays/Double-Subscripted Variable
III. Multidimensional arrays

I. One-Dimensional Arrays: A list of items can be given one variable name using
only one subscript and such a variable is called a single subscripted variable or one
dimensional array.

Ex: int marks[4];


 Here marks is the name of the array which is capable of storing 4 integer values.
The first value will be stored in marks[0], the second value will be stored in marks[1]
and so on and the last value will be in marks[3].
Declaration of One-Dimensional Array: Here is general syntax for array declaration
along with examples.
Module 3 C Programming for Problem Solving

Syntax: data_type array_name[size];


Examples: int marks[4];
float temperature[5];
Note: Declaration and definition specify the data type of
array, its name and size.

Initialization of One-Dimensional Array: After array is declared, next is storing


values in to an array is called initialization. There are two types of array initialization:
1. Compile-time initialization
2. Run-time initialization

1. Compile time initialization: If we assign values to the array during declaration


it is called compile time initialization. Following are the different methods of compile
time initialization.
a) Initialization with size
b) Initialization without size
c) Partial initialization
d) Initializing all values zero

a) Initialization with size: we can initialize values to all the elements of the array.
Syntax: data_type array_name[size]={list of values};
Examples: int marks[4]={ 95,35, 67, 87};
float temperature[5]={29.5, 30.7, 35.6, 45.7, 19.5};

b) Initialization without size: We needn’t have to specify the size of array provided
we are initializing the values in beginning itself.
Syntax: data_type array_name[ ]={list of values};
Examples: int marks[ ]={ 95,35, 67, 87};
float temperature[ ]={29.5, 30.7, 35.6, 45.7, 19.5};
c) Partial initialization: If we not specify the all the elements in the array, the
unspecified elements will be initialized to zero.
Module 3 C Programming for Problem Solving

Example: int marks[5]={10,12,20};


Here, marks[3] and marks[4] will be initialized to zero.

d) Initializing all the elements zero: If we want to store zero to all the elements in
the array we can do.
Examples: int marks[4]={0};
float temperature[5]={0};

2. Run time initialization: Run time initialization is storing values in an array


when program is running or executing.
Following example illustrates run time storing of values using scanf and for loop:
Example:
printf(“Enter the marks”);
for(i=0; i<4; i++)
{
scanf(“ %d”, &marks[i]);
}
Note: Every iteration of for loop will help us to fill values into marks array (i.e.
marks[0]=95, marks[1]=35, marks[2]=67, marks[3]=87)

Accessing the array elements: Accessing the array element is done using a loop
statement in combination with printf statements or any other processing statements.
Example of accessing the array elements and calculating total marks is given below:
Example: void main( )
{
int total=0, marks[4]={35,44,55,67};
for(i=0; i<4; i++)
total=total+marks[i]; /* calculating total marks*/
printf(“Total marks=%d”,total);
}
Output: Total marks=201
Module 3 C Programming for Problem Solving

USING ARRAYS WITH FUNCTIONS:


In large programs that use functions we can pass Arrays as parameters. Two
ways ofpassing arrays to functions are:
1. Pass individual elements of array as parameter
2. Pass complete array as parameter
Let us take an example program that uses a function square( ) to calculate square of
numbers stored in an array. In this program each array element is passed one by one.

Example-1 Example-1 cont’d:


int square(int); void square(int no )
void main( ) {
{ int sq;
int num[5], i; sq=no*no; /*square is calculated*/
num[5] ={3,4, 8, 9, 10}; printf(“square is=%d ”, sq);
for(i=0; i<5; i++) }
{
square(num[i]);
}
}
} Output:

Square is=9 16 64 81 100

This diagram clearly illustrates how each individual element of array num[ ] is passed to
function square through parameter no.

3 4 8 9 10
0 1 2 3 4 num[3]=9 no

num[1]=4 copied  no

num[0]=3 copied to no
num[2]=8 no

Next program illustrates how to pass an entire array to a function average( ) and
calculate average marks. First sum of all the elements of array marks
Module 3 C Programming for Problem Solving

(i.e.35+65+75+95+85) is calculated and average is stored in a variable avg. value in avg


variable is returned to main( ) and stored in avg1

Example-2: Example-2 cont’d:


float average(int score[ ] )
float average(int score[]); {
void main( ) int i , sum=0;
{ float avg;
int marks[5], i for(i=0; i<5;i++)
float avg1; {
marks[5] ={35,65, 75, 95, 85}; sum=sum+score[i];
avg1=average(marks); }
printf(“average=%f”, avg1) avg=sum/5;
} return (avg);
}

Output:

average=71.000000

In the above example each value of array marks[ ] is copied to array scores[ ] as shown
below:
marks[0]=35 copied to scores[0]

marks[1]=65 copied to scores[1]

marks[2]=75 copied to scores[2]

marks[3]=95 copied to scores[3]

marks[4]=85 copied to scores[4]

using these values average is calculated:


(35+65+75+95+85)/5=
71.000000

II. Two-Dimensional Arrays: A list of items can be given one variable name using
two subscripts and such a variable is called a single subscripted variable or one
dimensional array.
Module 3 C Programming for Problem Solving

 It consists of both rows and columns. Ex: Matrix.

Declaration of Two-Dimensional Array: Here is general syntax for array declaration


along with examples.

Syntax: data_type array_name[row_size][column_size];

Examples: int marks[4][4];


float city_temper[3][3];
Note: Declaration and definition specify the data type of
array, its name and size.

Initialization of Two-Dimensional Array: After array is declared, next is storing


values in to an array is called initialization. There are two types of array initialization:
1. Compile-time initialization
2. Run-time initialization

1. Compile time initialization: If we assign values to the array during declaration


it is called compile time initialization. Following are the different methods of compile
time initialization.

Syntax: data_type array_name[size]={list of values};


Examples: int marks[3][4]={ 1,2,3, 4, 5, 6, 7,8,9,10,11,12};
float city_temper[2][2]={29.5, 30.7, 35.6, 45.7};
Note: in the above examples we are storing values in marks array and
temperature array respectively. The pictorial representation is also given
below

 After initialization the arrays appear as follows:

1 2 3 4 29.5 30.5
marks city_temp
35.6 45.7
5 6 7 8
Module 3 C Programming for Problem Solving

2. Run time initialization: Run time initialization is storing values in an array


when program is running or executing.
Following example illustrates run time storing of values using scanf and for loop:
Example: printf(“Enter the marks”);
for(i=0; i<3; i++)
for(j=0;j<4;j++)
{
scanf(“ %d”, &marks[i][j]);
}
More Examples: Other way of initialization:
int a[ ][3]= { 0, 1, 2, 3,4,5,6,7,8};
int b[ ][4] ={1,2,3,4,5,6,7,8,9,10,11,12};

012 1234
a b
345 5678
67 8 9 10 11 12

Example for Invalid initialization


int A[3][ ]={1,2,3};
Note: Never have column size undeclared in two dimension array.

III. Multi Dimensional Arrays: Multidimensional arrays can have three, four or
more dimensions.
 A three-dimension array is an array of two dimensional arrays. It has row, column
and depth associated with it.
 Declaring multidimensional arrays
int table[3][5][4];
Module 3 C Programming for Problem Solving

Here are two examples illustrating three-dimensional array declaration and


initialization

A[3][4][2]={
{
{ 1,2},
4 rows &
{3,4},
{5,6}, 2 columns
{7,8},

},

{ 3 depth
{ 8,9},
{10,11},
{12,13},
{14,15},
},

{
{ 8,9},
{10,11},
{12,13},
{14,15},
}
}

3. OPERATIONS PERFORMED ON ONE_DIMENSIONAL ARRAY


SORTING: It is the process of arranging elements in the list according to their values in
ascending or descending order. A sorted list is called an ordered list.
Ex: Bubble Sort, Selection Sort, Insertion Sort, Shell Sort, Merge Sort, Quick Sort.
Bubble Sort
Bubble sort will start by comparing the first element of the array with the second
element, if the first element is greater than the second element, it will swap both the
elements, and then move on to compare the second and the third element, and so on.
#include<stdio.h>
Module 3 C Programming for Problem Solving

void main( )
{
int i,j,n,temp,a[100];
printf("Enter the value of n\n");
scanf("%d",&n);
printf("Enter the numbers in unsorted order:\n");
for(i=0;i<n;i++)
scanf("%d", &a[i]);
for(i=0;i<n;i++)
{
for(j=0;j<(n-i)-1;j++)
{
if( a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("The sorted array is\n");
for(i=0;i<n;i++)
{
printf("%d\n",a[i]);
}
}

Selection Sort
Selection sort will start by comparing the first element with other elements and finds
minimum element and swaps, then it starts comparing by taking second element with
other elements and so on.

#include<stdio.h>
Module 3 C Programming for Problem Solving

void main( )
{
int a[100],i,j,n,temp,pos;
printf("Enter the value of n\n");
scanf("%d",&n);
printf("Enter the numbers in unsorted order:\n");
for(i=0;i<n;i++)
scanf("%d", &a[i]);
for(i=0;i<n;i++)
{
pos=i;
for(j=i+1;j<n;j++)
{
if( a[pos]>a[j])
Pos=j;
}
if(pos !=i )
{
temp=a[i];
a[i]=a[pos];
a[pos]=temp;
}
}
printf("The sorted array is\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
}

SEARCHING: It is the process of finding the location of the specified element in a list.
 The specified element is often called the search key.
 If it is found search is successful, otherwise it is unsuccessful.
Ex: Binary Search, Linear Search, Sequential Search.
Module 3 C Programming for Problem Solving

Linear Search

Linear search is a very basic and simple search algorithm. In Linear search, we search
an element or value in a given array by traversing the array from the starting, till the
desired element or value is found.

#include<stdio.h>
#include<stdlib.h>
void main( )
{
int n, a[100], i, key,loc;
loc=-1;
printf("Enter the size of the array\n");
scanf("%d",&n);
printf("Enter the elements of array in sorted order\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Enter the key element to be searched\n");
scanf("%d",&key);
for(i=0;i<n;i++)
{
if(key == a[i]
{
loc=i+1;
break;
}
if(loc>=0)
printf("The element %d is found at %d \n",ele,loc);
else
printf("The search is unsuccessful\n");
}

Binary Search
Binary search works only on a sorted set of elements. To use binary search on a
collection, the collection must first be sorted. The array is divided into two parts,
Module 3 C Programming for Problem Solving

compared with middle element if it is not successful, then it is compared whether it is


lesser or greater than middle element. If it is lesser, search is done towards left part
else right part.

#include<stdio.h>
#include<stdlib.h>
void main( )
{
int n, a[100], i, key, loc, high, low, mid;
loc=-1;
printf("Enter the size of the array\n");
scanf("%d",&n);
printf("Enter the elements of array in sorted order\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("Enter the key element to be searched\n");
scanf("%d",&key);
low=0;
high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(key==a[mid])
{
loc = mid+1;
break;
}
else
{
if(ele<a[mid])
high=mid-1;
else
low=mid+1;
}
}
Module 3 C Programming for Problem Solving

if(loc>=0)
printf("The element %d is found at %d \n",ele,loc);
else
printf("The search is unsuccessful\n");
}

MODULE 3

CHAPTER 2: STRING CONCEPTS


Definition: String is a variable length data stored in a character array.
Example: “hello”, “India”
I. C- strings
 In C a string is a data structure based on an array of char.
 A string is a sequence of elements of the char data type.
 There is no separate data-type called string in C language.
 As strings are variable-size data we have to represent them using character
Arrays.
Example string is:

R A J E S H \0 Delimiter ‘\0’
indicates end of
0 1 2 3 4 5 6 string

Strings in C are classified into two types:


1. String literals
2. String variables

String literals are also known as string constants, is a sequence of characters enclosed
by double quotation marks is called string literals. A string literal is a constant its value
cannot be changed. Some examples are:
Examples: “New Delhi”, “I Love India” etc.

String variables are nothing but character array. Following syntax and examples
illustrates declaring string variables.
Example: char array_name[ ]= “raj”
Module 3 C Programming for Problem Solving

How string is stored?


 A string, even a literal one is very similar to an array of characters.
 The only difference between array of char and string is that, a string must end
with null character (\0).
 If you use a literal string in a program, it is stored in consecutive bytes in memory
and compiler places the null character at the end.
 Below fig shows storage for literal string “CBIT”
C B I T \0

Declaring string variables: A string is declared like an array of characters.


Syntax: char string_name[size];
Ex: char name[21];
Size 21 means it can store up to 20 characters plus the null character. Entire storage
location name is divided in to 21 boxes called bytes, each of which holds one character.
Each character is element of data type char.

Initializing the string in the declaration


char first[10]={‘t’,’a’,’b’,’l’,’e’,’\0’};
char second[10]=”table”;
Difference between a single character string and a single character array is:
Single character array takes 1 byte whereas single character string occupies two bytes
as shown below:

A \0 Single character string

‘A’ 25

Limitations of Strings: One string variable cannot be directly assigned to another


string as in the case of ordinary scalar variables.
Let us say int a=10, b;
b=a; /* is perfectly valid */
Module 3 C Programming for Problem Solving

But take an example of string initialization:


char name1[ ] = “hello”;
char name2[10 ];
name2=name1; /* This initialization is invalid */

But this initialization can be done using a loop and assigning individual characters of
name1 to name2 as shown below:
void main( )
{
int char name1[ ]= “hello”;
int char name2[5];
for (int i=0; i<4;i++)
{
name2[i] =name1[i];
}
name2[i]= ‘\0’;
}

Printing and reading a string: Token oriented input/output function


Printing a string using printf: We can use printf function with %s format specifier to
print a string on to the monitor. The %s is used to display an array of characters that is
terminated by null character.
Example:
(1) char name[10]=”Andy”;
printf(“the name is %s\n”,name);
o/p: the name is Andy

(2) char name[ ]= “ MANGALORE”;


printf(“%s”, name);
Module 3 C Programming for Problem Solving

printf (“%9.6s”, name);


printf(“%-10.3s”, name);

M A N G A L O R E %s prints entire string

%9.6s prints first 6 characters out of 9


M A N G A L
characters

Prints first 3 characters but in left


M A N justified manner because of (- ) sign

Reading a string using scanf( )


It uses string conversion specifier %s to accept a string data. Following example
illustrates it:
char name[20];
scanf(“%s”, name);
Note: while reading strings we needn’t specify address of operator (&) as the character
array itself is an address (i.e name itself is base address of array in the above example)

Disadvantage of reading strings using scanf( ) function is multiple words strings


cannot be read. For example say we have to read NEW DELHI, following scanf( ) reads
only NEW and stops.

scanf(“%s”, name);

say input is
N E W D E L H I

Only part of a string (NEW) is read and second half (DELHI) is ignored.

N E W

Edit set Conversion code %[ ]: In addition to %s we can also use edit set conversion
code %[ ], which specifies the type of characters that can be accepted by scanf ( )
function.
Module 3 C Programming for Problem Solving

For Example say we have to accept only 0-9 digits in a string then edit set code can be
used as follows:
char name[20];
scanf(“%[0123456789]”, name)

Example strings that will be read by above statement are:


12345, 123, 567, 7890 etc.

NOTE: Suppose we want to skip particular set of characters in a string, then we have to
use:
^ symbol in edit set conversion code. Following example illustrates same:
Example 1:
char name[20];
scanf(“%[^A-Z]”, name)

This function skips all Capital alphabets from a string.


Say string is APPLE, banana, Mango
Accepted words are: banana, ango
Example 2:
Char name[20];
Scanf(“%[^\n]”,name);

This function will read a line of characters including white space.

II. String manipulation function:

C library supports a large number of string handling functions that can be used to
carry out many of the string manipulations and are stored in header file “string.h”.
Following are the most commonly used string handling functions.
1. strcpy( ) copies one string over another
2. strlen( ) finds the length of a string
Module 3 C Programming for Problem Solving

3. strcmp( ) compare two strings


4. strcat( ) concatenates two strings
5. strcpy( ) copies left most n characters of source to destination
6. strcmp( ) compares left most of n characters of source to destination.

1. strcpy( ): It is possible to assign a value to a string variable using strcpy( ). It


allows us to copy a string from one location to another. The string to be copied can be
literal or string variable. The general form of call to strcpy is
strcpy(dest,source);
Strcpy() function has two parameters. The first is the dest, a string variable whose value
is going to be changed. The second is the source the string literal or variable which is
going to be copied to the destination.
Ex: char first[14];
char last[14];
strcpy(first,”ravi kumar”);
strcpy(last,first);
After two calls to strcpy, first and last each has a value “Ravi kumar”
A call to strcpy can be used to copy just part of a string. Either or both of the parameters
can refer to addresses past the beginning of their strings.
Ex: char name[20]=”Ravi kumar”;
char newname[20]=”Lee Davis”;
strcpy(name+5,newname+4);

name R A V I D A V I S \0

0 1 2 3 4 5 6 7 8 9 10 11 12 13

Strcpy does not check to see whether there is room for the resulting string at the
specified location. If there is no room, it copies characters on top of whatever variables
follow in memory. This may destroy the contents of other variables.
Module 3 C Programming for Problem Solving

2. strlen():the string length function can be used to find the length of the string in
bytes. It takes the form
length=strlen(str);
The parameter to strlen, str is a string. The return value length is an integer
representing current length of str in bytes excluding the null character.
Ex: str=”CBIT”
lenth=strlen(str); //4
str=’\0’
length=strlen(str); //0

3. strcmp( ): A strcmp() is used to compare two strings. It takes the two strings as
a parameter and returns an integer value based on the relationship between two
strings.
General form of call to strcmp()
result=strcmp(first,second);
result>0 if first> second
result=0 if first==second
result<0 if first<second

Ex: int res;


res=strcmp(“cat”,”car”); //res>0
res=strcmp(“pot”,”pot”);//res==0
res=strcmp(“big”,”little”); //res<0

4. strcat( ): often it is useful to concatenate or join two strings together. The strcat
function is used to join two strings together. The resulting string has only one null
character at the end.
General form of a call to strcat( )
strcat(first, second);
Module 3 C Programming for Problem Solving

After the call, first contains all the characters from first, followed by the ones from
second up to and including the first null character in second.
Note: strcat stops copying when it finds a null character in the second string. If it
doesn’t find a null character, strcat continues copying bytes from memory until it finds
null character. The programmer must check to make sure that the resulting string fits in
the variable.

Ex: char dest[30]=”computer”;


char second[15]=” programming”;
strcat(dest,second); //computer programming

5. strncmp( ): The strncmp function compares up to specified number of characters


from the two string, starting at the address specified, and returns integer representing
the relationship between the compared string sections. It compares the character by
character until it finds a null character or characters that are different or until it has
compared number of characters.
General form of call to strncmp()
Result=(firstaddress, secondaddress, numchars);

Ex: char first[30]=”string”;


char second[10]=”stopper”;
int n;
if(strncmp(first,second,4)==0)
printf(“first four characters are alike\n”);
else if(strncmp(first,second,4)<0)
printf(“first four characters of first string are less\n”);
else
printf(“first four characters of first string are greater\n”);

6. strncpy( ): The strncpy function allows us to extract a substring from one string
and copy it to another location.
General form of call to strncpy
Module 3 C Programming for Problem Solving

strncpy(dest, source, numchars);


The strncpy function takes three parameters. Here this statement copies the numchars
of the source string in to dest string. Since numchar does not include null character , we
have to place it explicitly in the source string.
Ex: char source[20]=”computer world”;
char dest[10];
strncpy(dest,source,3); //first three characters of source is copied into dest
dest[3]=’\0’; //we have to put null character at the end of dest string
printf(“%s”,dest); //com

Array of strings: Array of string is an array of one dimensional character array, which
consists of strings as its individual elements.
Declaration of array of strings: Char name[size1][size2];
Ex:
char days[7][10]={“Sunday”,”Monday”,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”};

PROGRAMS
1. WACP to read N integers into an array A and to
i. Find the sum of odd numbers.
ii. Find the sum of even numbers.
iii. Find the average of all numbers.
Output the results compared with appropriate headings.
#include<stdio.h>
void main( )
{
int oddsum=0, evensum=0, i ,N, A[20];
float avg;
printf(“enter the size of an array\n”);
scanf(“%d”,&N)
printf(“Enter the array elements\n”);
for(i=0;i<N;i++)
Module 3 C Programming for Problem Solving

{
scanf(“%d”, &A[i]); /* reading array values*/
}
for(i=0;i<N;i++)
{
if(A[i]%2==0);
{
evensum=evensum+A[i]; /* compute even sum */
}
else
{
oddsum=oddsum+A[i]; /* compute odd sum */
}
}
avg=(evensum+oddsum)/N;
printf(“even sum is = %d\n”, evensum);
printf(“odd sum is = %d\n”, oddsum);
printf(“Average of all is = %f\n”, avg);
}

2. Program to read and write the elements of one dimensional array


void main( )
{
int a[10],i,n;
printf(“enter the number of elements in an array\n”);
scanf(“%d”,&n)
printf(“enter the elements of an array\n”);
for(i=0;i<n;i++)
scanf(“%d”,&a[i]);
printf(“the elements of an array are\n”);
for(i=0;i<n;i++)
printf(“%d\n”,a[i]);
}

3. Program to read and write the elements of two dimensional arrays


Module 3 C Programming for Problem Solving

void main()
{
int a[10][10],i,j,m,n;
printf(“enter the size1 and size2 of 2 dimensional array\n”);
scanf(“%d”,&m,&n)
printf(“enter the elements of an array\n”);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf(“%d”,&a[i][j]);
printf(“the elements of 2 dimensional array are\n”);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
printf(“%d”,a[i][j]);
printf(“\n”);
}
}

4. Program to count number of odd numbers and even numbers in an array:


void main( )
{
int odd_count=0, even_count=0, i , num[10];
printf(“Enter the array elements\n”);
for(i=0;i<10;i++)
{
scanf(“%d”, &num[i]); /* reading array values*/
}
for(i=0;i<10;i++)
{
rem=num[i]%2;
if(rem==0)
{
even_count++; /* increase even counter by1 */
}
else
{
Module 3 C Programming for Problem Solving

odd_count++; /* increase odd counter by1 */


}
}
printf(“odd count is = %d\n”, odd_count);
printf(“even count is = %d\n”, even_count);
}

5. C program to find largest element in the two dimensional array.

#include<stdio.h>
void main()
{
int m,n,a[5][5],i,j,large;
printf("enter the size1 and size2 of 2D array\n");
scanf("%d%d",&m,&n);
printf("enter the elements of 2d array\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d"&a[i][j]);
large=a[0][0];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(a[i][j]>large)
large=a[i][j];
}
printf("large=%d",large);
}

6. Write a C program to concatenate two strings without using build in


function strcat.
void main()
{
char str1[50],str2[25];
int i=0,j=0;
printf("enter the string1\n");
Module 3 C Programming for Problem Solving

gets(str1);
printf("enter the string2\n");
gets(str2);
while(str1[i]!='\0')
i++;
while(str2[j]!='\0')
{
str1[i]=str2[j];
i++;
j++;
}
str1[i]='\0' ;
printf("concatanation of string is %s",str1);
}

7. Implement string copy operation STRCOPY(str1,str2) that copies a string


str1 to another string str2 without using library function.

#include<stdio.h>
#include<conio.h>
void main()
{
char s1[100],s2[100];
int i;
printf("\nEnter the string1 :");
gets(s1);
i=0;
while(s1[i]!='\0')
{
S2[i]=s1[i];
i++;
}
s2[i]='\0';
printf("\nString2 value is %s ",s2);
}

You might also like