0% found this document useful (0 votes)
7 views

Module 2

pys

Uploaded by

premsai0824
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Module 2

pys

Uploaded by

premsai0824
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

C Programming for problem solving 21CPS13/23

MODULE 2
MANAGING INPUT AND OUTPUT OPERATIONS
INTRODUCTION

 Reading, processing and writing of data are three essential functions of a computer
program.
 There are two methods. The first method is to assign the values and the second method
is to use input function scanf to read data and output function printf to write data.
 Ex: #include<stdio.h> Includes function calls such as printf( ) and scanf( ) into the
source code when compiled.

READING A CHARACTER

 The simplest way of all input/output operations is reading a character from the ‘standard
input’ unit (usually keyboard) and writing it to the ‘standard output’ (usually the screen).
 Reading a single character can be done by using the function getchar and it does not
have any parameter.

Syntax: variable_name = getchar( );

Where, variable_name is valid and has been declared in char type.

Example: char name;


name = getchar( );

 The getchar function can also be used to read the characters successively until the return
key is pressed.
 The character function are contained in the file type ctype.h and therefore the
preprocessor directive #include<ctype.h> is included.
 And the functions of ctype.h returns 1 if (TRUE) and 0 if (FALSE).
Function Test
isalnum(c) Is c alphanumeric
character?
isalpha(c) Is c alphabetic character?
isdigit(c) Is c a digit?
islower(c) Is c a lower case letter?
isupper(c) Is c a upper case letter?

www.vtuupdates.com Page 1
C Programming for problem solving 21CPS13/23

isspace(c) Is c a white case


character?
ispunct(c) Is c a punctuation mark?
isprint(c) Is c a printable character?

Example Program:
#include<stdio.h>
#include<ctype.h>
void main( )
{
char key;
printf(“Enter any key\n”);

key=getchar( );

if(isalpha(key))
printf(“The entered key is a letter\n”);
else if(isdigit(key))
printf(“The entered key is a digit\n”);
else
prinprintf(“The entered key is not alphanumeric\n”);
}

www.vtuupdates.com Page 2
C Programming for problem solving 21CPS13/23

OUTPUT:

 Enter any key A


The entered key is a letter

 Enter any key 7


The entered key is a digit

 Enter any key


$
The entered key is not alphanumeric

WRITING A CHARACTER

 Writing a single character can be done by using the function putchar.


Syntax: putchar(variable_name);

Where, variable_name is valid and has been declared in char type.

Example: name=’y’;
putchar(name);

Will display the character y on the screen

 The characters entered can be converted into reverse i.e., from upper to lower case and
vice versa.
 The functions used to convert are toupper, tolower.
Example Program:
#include<stdio.h>
#include<ctype.h>
void main( )
{
char alphabet;
printf(“Enter any alphabet\n”);
alphabet=getchar( ); Output
if(islower(alphabet)) 1. Enter any alphabet a
putchar(toupper(alphabet)); A
else 2. Enter any alphabet A
putchar(tolower(alphabet)); a
}

www.vtuupdates.com Page 3
C Programming for problem solving 21CPS13/23

FORMATTED INPUT

 Formatted input refers to an input data that has been arranged in particular format.
 Ex: 152 Rajesh
 In the above example the first part contains integer and the second part contains
characters. This is possible with the help of scanf function.

Syntax: scanf(“control string”, arg1, arg2,…..,argn);

 The control string specifies the field form in which data should be entered and the
arguments arg1, arg2,…..,argn specifies the address of the location where the data is stored.
 The width of the integer number can be specified using %wd.

Example-2:
– scanf(“%2d %2d”, &a, &b);
%2d two digit integer
%2d two digit integer
45 67 25
a=45 b=67
Note: 25 is not at all stored

 The input field may be skipped using * in the place of field width.

Example-3:
– scanf(“%2d %*d %2d”, &a, &b);
%2d two digit integer
%*d skip this integer
45 25 63
a=45
25 is skipped
b=63

 The scanf function can read single character or more than one character using %c or %s.

Rules for scanf:


 Each variable to be read must have a specification
 For each field specification, there must be address of proper type.
 Never end the format string with whitespace. It is a fatal error.
 The scanf will read until:

www.vtuupdates.com Page 4
C Programming for problem solving 21CPS13/23

 A whitespace character is found in numeric specification.


 The maximum number of characters have been read
 An error is detected
 The end of file is reached
 Any non-whitespace character used in the format string must have a matching
character in the user input.

The below table shows the scanf format codes commonly used.
The l can be used as a prefix for long integer. Ex: %ld

Code Meaning
%c Read a single character
%d Read a decimal integer
%e, %f, Read a floating point value
%g
%h Read a short integer
%i Read a decimal integer
%o Read a octal integer
%s Read a string
%u Read an unsigned decimal integer
%x Read a hexadecimal integer
%[ ] Read a string of word

FORMATTED OUTPUT

 The printf function is used for printing the captions and results.

Syntax: printf(“control string”, arg1, arg2, ….., argn);


-
 Control string contains three types of items:
1. Characters that will be printed on the screen as they appear.
2. Format specifications that define the output format for display of each item.
3. Escape sequence characters such as \n, \t and \b.

 The printf can contain flags (0 + - )


0 fill in extra positions with 0’s instead of spaces a=7777
printf(“a = %07d”, a);
Width of 7 memory space is
allocated and padded with
leading zeroes

www.vtuupdates.com Page 5
C Programming for problem solving 21CPS13/23

%07d

0 0 0 7 7 7 7

- Left justify text instead of right justify text a=7777;


printf(“a = % -7d”, a);
% -7d
Width of 7 memory space is
7 7 7 7 allocated and printed from left side
(left justify)

Print sign of number (whether positive or negative)


 Example with format specifier %d:
a=10, b=77;
printf(“%d %d”, a , b);

Output:
10 77
6.3f means totally 6 locations are
allocated out of which 3 is for number
of decimal places.

 Example with format specifier %f:


x=10.776;
printf(“%6.3f %”, x );

%6.3f
1 0 . 7 7 6

www.vtuupdates.com Page 6
C Programming for problem solving 21CPS13/23

 Example with \n and \t:


a=10, b=77, c=88;
printf(“a=%d\n b=%d\tc=%d”, a , b, c);

Output:
a=10 b=77 c=88

 Example with size value:


a=10, b=7777, c=88;
printf(“a=%4d\n b=%7d”, a , b);

%4d
Width of 4 memory space is
1 0 allocated and printed from right
side

%7d Width of 7 memory space is allocated


7 7 7 7
and printed from right side (right
justify)

 The below table shows the scanf format codes commonly used.
Code Meaning
%c Print a single character
%d Print a decimal integer
%e Print a floating point value in exponent form
%f Print a floating point value without exponent
%g Print a floating point value with or without exponent
%h Print a short integer
%i Print a decimal integer
%o Print a octal integer
%s Print a string
%u Print an unsigned decimal integer
%x Print a hexadecimal integer
%[] Print a string of word

The l can be used as a prefix for long integer. Ex: %ld

www.vtuupdates.com Page 7
C Programming for problem solving 21CPS13/23

 General syntax of field-width/size


width/size for different data types:

• %wd Example: %6d


• %w.pf Example %6.2f
• %w.ps Example %10.4s
– w means total field size/width
– P means precision (tells how many decimal places to be printed in case of float)
and
– How many characters to be printed in case of strings

Examples: a=9876; 9 8 7 6
printf(“%d”, a);
9 8 7 6
printf(“%6d”,a);
printf(“%-6d”,a);
6d”,a); 9 8 7 6

printf(“%3d”,a);
9 8 7 6

NOTE: String input/output function: gets( ) and puts ( )

 gets and puts are line oriented input output functions available in the <stdio.h> header
file.
 gets( ): Alternative method to read strings is gets( ) (read it as get string) function which
is an unformatted string input function. Advantage of gets( ) is it can read multi-word
word strings.
 Example: char name[10];
gets(name);

Say input is:

The complete string “NEW YORK” is read by gets( ).

 puts( ): This function can be used to display entire string on monitor screen without the
help of %s specifier.
Example: char name[ ] = “Bengaluru” puts(name);
puts( ) will display the string value stored in parameter passed to it on monitor.
In this case it is—Bengaluru.

www.vtuupdates.com Page 8
C Programming for problem solving 21CPS13/23

Decision Making and Branching

INTRODUCTION
 C language possesses such decision making capabilities by supporting the following
statements:
1. If statement
2. Switch statement
3. Conditional operator statement
4. goto statement
 These statements are popularly known as decision making statements. Also known as
control statements.

DECISION MAKING (Two-Way Selection Statements)

 The basic decision statement in the computer is the two way selection.
 The decision is described to the computer as conditional statement that can be answered
TRUE or FALSE.
 If the answer is TRUE, one or more action statements are executed.
 If answer is FALSE, the different action or set of actions are executed.
 Regardless of which set of actions is executed, the program continues with next
statement.
 C language provides following two-way selection statements:
1. if statement
2. if – else statement
3. Nested if else statement
4. Cascaded if else (also called else-if ladder)

1. if statement: The general form of simple if statements is shown below.


if (Expression)
{
Statement1;
}
Statement2;

www.vtuupdates.com Page 9
C Programming for problem solving 21CPS13/23

 The Expression is evaluated first, if the value of Expression is true (or non zero) then
Statement1 will be executed; otherwise if it is false (or zero), then Statement1 will be
skipped and the execution will jump to the Statement2.
 Remember when condition is true, both the Statement1 and Statement2 are executed in
sequence. This is illustrated in Figure1.

Note: Statement1 can be single statement or group of statements.

Statement1

Statement2

Figure 1: Flow chart of if statement


Example:
#include<stdio.h> void main( )
{
int a=20, b=11; if (a >b)
{
printf(“a is bigger and value is= %d\n”, a);
}
printf(“job over\n”);
}

Output: a is bigger and value is=20 job over

www.vtuupdates.com Page 10
C Programming for problem solving 21CPS13/23

2. ifelse statement: The if..else statement is an extension of simple if statement. General


syntax:

if (Expression)
{
(true-block;) Statement1;
}
else
{
(false-block;) Statement2;
}
Statement3;

 If the Expression is true (or non-zero) then Statement1 will be executed; otherwise if it is
false (or zero), then Statement2 will be executed.
 In this case either true block or false block will be executed, but not both.
 This is illustrated in Figure 2. In both the cases, the control is transferred subsequently to
the Statement3.

Statement2 Statement1

Statement3

Flow chart of if-else statement

www.vtuupdates.com Page 11
C Programming for problem solving 21CPS13/23

Example:
void main( )
{
int a=10, b=11;
if (a >b)
{
printf(“a is bigger and value is= %d”, a);
}else
e printf(“b is bigger and value is= %d”, b);
l
}
s
e
{
Output: b is bigger and value is=11
}
}

www.vtuupdates.com Page 12
C Programming for problem solving 21CPS13/23

3. Nested if .. else statement: When a series of decisions are involved, we have to use
more than one if..else statement in nested form as shown below in the general syntax.

if (Expression1)
{
if(Expression2)
{
Statement1;
}
else
{
Statement2;
}
}
else if(Expression3)
{
Statement3;
}
else
{
Statement4;
}

 If Expression1 is true, check for Expression2, if it is also true then Statement1 is


executed.
 If Expression1 is true, check for Expression2, if it is false then Statement2 is executed.
 If Expression1 is false, then Statement3 is executed.
 Once we start nesting if .. else statements, we may encounter a classic problem known as
dangling else.
 This problem is created when no matching else for every if.
 C solution to this problem is a simple rule “always pair an else to most recent unpaired if
in the current block”.
 Solution to the dangling else problem, a compound statement.
 In compound statement, we simply enclose true actions in braces to make the second if a
compound statement.

www.vtuupdates.com Page 13
C Programming for problem solving 21CPS13/23

Flow chart of Nested if-else statement


Example:
void main( )
{
int A=20,B=15,C=3;
if ( A>B)
{
if (A>C)
{
printf(“largest=%d”, A);
}
else
{
printf(“largest=%d”,C);

}
else
{
if(B>C)
{
printf(“largest=%d”, B);
}
else
{
printf(“largest=%d”, C);

www.vtuupdates.com Page 14
C Programming for problem solving 18CPS13

}
}
}
Output: largest=20

4. else-if ladder or cascaded if else: There is another way of putting ifs together when
multipath decisions are involved. A multi path decision is a chain of ifs in which the
statement associated with each else is an if. It takes the following form.

if (Expression1)
{
Statement1;
}
else if(Expression2)
{
Statement2;
}
else if(Expression3)
{
Statement3;
}
else
{
Statement4;
}
Next Statement;
C Programming for problem solving 18CPS13

 This construct is known as the else if ladder.


 The conditions are evaluated from the top (of the ladder), downwards. As
soon as true condition is found, the statement associated with it is executed
and control transferred to the Next statement skipping the rest of the ladder.
 When all conditions are false then the final else containing the default
Statement4 will be executed.

Flow chart of else if ladder statement


Example:
void main( )
{
int choice, a=100, b=5;
printf(“enter 1 for addition 2 for subtraction 3 for multiply 4 for modulus\n”);
scanf(“%d”, &choice);

if(choice==1)
printf(“sum=%d”, a+b);

Dept. of CSE www.vtuupdates.com Page 16


C Programming for problem solving 18CPS13

printf(“difference=%d”, a-b);
else if(choice==3)
printf(“product=%d”, a*b);
else if (choice==4)
printf(“rem=%d”, a%b);
else
printf(“Invalid option”);
}

SWITCH STATEMENT

 C language provides a multi-way decision statement so that complex else-if statements


can be easily replaced by it. C language’s multi-way decision statement is called switch.
General syntax of switch statement is as follows:

switch(choice)
{
case label1: block1;
break;
case label2: block2;
break;
case label3: block-3;
break;
default : default-block;
break;
}

 Here switch, case, break and default are built-in C language words.
 If the choice matches to label1 then block1 will be executed else if it evaluates to label2
then block2 will be executed and so on.
 If choice does not matches with any case labels, then default block will be executed.

Dept. of CSE www.vtuupdates.com Page 17


C Programming for problem solving 18CPS13

Flow chart of switch case statement

 The choice is an integer expression or characters.


 The label1, label2, label3,…. are constants or constant expression evaluate to
integer constants.
 Each of these case labels should be unique within the switch statement. block1, block2,
block3, … are statement lists and may contain zero or more statements.
 There is no need to put braces around these blocks. Note that case labels endwith
colon(:).
 Break statement at the end of each block signals end of a particular case and causes an exit
from switch statement.
 The default is an optional case when present, it will execute if the value of the choice
does not match with any of the case labels.
Example:
#include<stdio.h>
#include<stdlib.h>
void main( )
{
int ch,a,b,res;

Dept. of CSE www.vtuupdates.com Page 18


C Programming for problem solving 18CPS13

float div;
printf(“Enter two numbers:”); scanf(“%d%d”,&a,&b);
printf(“1.Addition\n 2.Subtraction\n 3.Multiplication\n 4.Division\n 5.Remainder”);
printf(“Enter your choice:\n”);
scanf(“%d”,&ch); switch(ch)
{
case 1: res=a+b;
printf(“Result=%d\n”,res); break;
case 2: res=a-b;
printf(“Result=%d\n”,res); break;
case 3: res=a*b;
printf(“Result=%d\n”,res); break;
case 4: div=(float)a/b;
printf(“Result=%f\n”,div); break;
case 5: res=a%b;
printf(“Result=%d\n”,res); break;
default: printf(“Wrong choice!!\n”); exit0); (
}
}
In this program if ch=1 case ‘1’ gets executed and if ch=2, case ‘2’ gets executed and so on.
Ternary operator or conditional operator (?:)
 C Language has an unusual operator, useful for making two way decisions.
 This operator is combination of two tokens ? and : and takes three operands.
.

Syntax:
Expression1 ? Expression 2 : Expression 3
Where,
Expression1 is Condition
Expression2 is Statement Followed if Condition is True Expression3 is Statement
Followed if Condition is False
Meaning of Syntax:
1. Expression1 is nothing but Boolean Condition i.e. it results into either TRUE or
FALSE

Dept. of CSE www.vtuupdates.com Page 19


C Programming for problem solving 18CPS13

2. If result of expression1 is TRUE then expression2 is executed


3. Expression1 is said to be TRUE if its result is NON-ZERO
4. If result of expression1 is FALSE then expression3 is executed
5. Expression1 is said to be FALSE if its result is ZERO

Example: Check whether Number is odd or even

#include<stdio.h>
void main( )
{
int num;
printf("Enter the Number : "); scanf("%d",&num);
flag = ((num%2==0)?1:0); if(flag==0)
printf("\nEven");
else

printf("\nOdd");
}

Goto statement
 goto is an unconditional branching statement. The syntax of goto is as follows:
goto label;
statement1;
statement2;
label:

Dept. of CSE www.vtuupdates.com Page 20


C Programming for problem solving 18CPS13

 A label is a valid variable name.


 Label need not be declared and must be followed by colon.
 Label should be used along with a statement to which control is transferred.
 Label can be anywhere in the program either before or after the goto label.
 Here control jumps to label skipping statement1 and statement2 without verifying any
condition that is the reason we call it unconditional jumping statement.
Example:

void main( )
{
int a=5, b=7;

goto end;

a=a+1;

b=b+1;
end: printf(“a=%d b=%d”, a,b);
}

Dept. of CSE www.vtuupdates.com Page 21


C Programming for problem solving 18CPS13

MODULE 2
Decision Making and Looping

INTRODUCTION

Definition of Loop: It is a programming structure used to repeatedly carry out a particular


instruction/statement until a condition is true. Each single repetition of the loop is known as
an iteration of the loop.

Three important components of any loop are:

1. Initialization (example: ctr=1, i=0 etc)


2. Test Condition (example: ctr<=500, i != 0 etc)
3. Updating loop control values (example: ctr=ctr+1, i =i-1)

Pre-test and Post-test loops

 Loops can be classified into two types based on the placement of test-condition.
 If the test-condition is given in the beginning such loops are called pre-test loops (also
known as entry-controlled loops).
 Otherwise if test condition is given at the end of the loop such loops are termedas post-
test loops (or exit controlled loops).

Note Figure 1:
1. Here condition is at the beginning of loop. That is why it is called pre-test loop

Dept. of CSE www.vtuupdates.com Page 22


C Programming for problem solving 18CPS13

2. It is also called as entry controlled loop because condition is tested before entering
into the loop.
3. while is a keyword which can be used here.

Note Figure 2:
1. Here condition is at the end of the loop. That is why it is called post-test loop.
2. It is also called as exit controlled loop because condition is tested after body of the
loop is executed at least once.
3. do and while are keywords which can be used here.

LOOPS IN C:
C language provides 3 looping structures namely:

1. while loop
2. do….while loop
3. for loop
The loops may be classified into two general types. Namely:
1. Counter-controlled loop
2. Sentinel-controlled loop

 When we know in advance exactly how many times the loop will be executed, we use a
counter-controlled loop. A counter controlled loop is sometimes called definite repetition
loop.
 In a sentinel-controlled loop, a special value called a sentinel value is used to change the
loop control expression from true to false. A sentinel-controlled loop is often called
indefinite repetition loop.

i. while loop:
 It is a pre-test loop (also known as entry controlled loop). This loop has following
syntax:

while (condition)
{
statement-block;
}

Dept. of CSE www.vtuupdates.com Page 23


C Programming for problem solving 18CPS13

 In the syntax given above ‘while’ is a key word and condition is at beginning of the
loop.
 If the test condition is true the body of while loop will be executed.
 After execution of the body, the test condition is once again evaluated and if it is true,
the body is executed once again.
 This process is repeated until condition finally becomes false and control comes out of
the body of the loop.
Flowchart

 Here is an example program using while loop for finding sum of 1 to 10.
Example: Before loop execution:

void main() N=10, sum=0, i=1


{
N=10; i=1; First Round:
sum=0;
N=10, sum=1,
while (i<=N)
{ i=2
sum=sum+i; i=i+1;
} Second Round:
printf(“%d”, sum);
N=10, sum=3,
}

ii. do…. while loop: It is a post-test loop (also called exit controlled loop) it has two
keywords do and while. The General syntax:

Dept. of CSE www.vtuupdates.com Page 24


C Programming for problem solving 18CPS13

Do
{
statement-block;
} while (condition);

 In this loop the body of the loop is executed first and then test condition is evaluated.
 If the condition is true, then the body of loop will be executed once again. This process
continues as long as condition is true.
 When condition becomes false, the loop will be terminated and control comes out of the
loop.

Flowchart:

Example: The example already discussed with while loop to compute


sum of 1 to 10 numbers is given here with do …while loop:

Dept. of CSE www.vtuupdates.com Page 25


C Programming for problem solving 18CPS13

void main( )
{
Before loop execution:
N=10;
i=1; N=10, sum=0, i=1
sum=0; First Round:
do
{
N=10, sum=1, i=2
sum=sum+i; i=i+1;
} Second Round:
while (i<=N);
printf(“%d”, sum); N=10, sum=3, i=3
}

iii. for loop:


 It is another pre-test loop (also called entry controlled loop) that provides concise loop
control structure. It has one keyword for.
 One important aspect of for loop is all the three components of a loop (viz. initializing,
testing condition and updating (increment/decrement)) is given in the head of for loop.

General syntax:
for( initialization; test-condition; updation)
{
Body-of loop;
}

The execution of for statement is as follows.

1. In this loop first initialization of control variable is done first, using assignments such as
i=1, count=0. The variable i count are called loop control variable.
2. The value of control variable is tested using the test condition. The test condition is
evaluated. If the condition is true, the body of the loop is executed; otherwise loop will be
terminated.
3. When the body of the loop is executed, the control transferred back to the for statement
to update the loop variable. And then condition is checked once again. If condition is true
once again body will be executed once again. This process continues till the value of the
control variable fails to satisfy the test condition.

Dept. of CSE www.vtuupdates.com Page 26


C Programming for problem solving 18CPS13

Flowchart:

Example: Same program to find some of 1 to 10 numbers can be written using for loop as
follows:

void main( )
{
int i, N=10, sum=0;

for (i=1; i<=N; i++)


{
sum=sum+i;
}
printf(“Total =%d”, sum);
}

Note: In for loops whether both i++ or ++i operations will be treated as pre-increment only.

Nested for loops:

 In some programming situations within one for loop we have to write another for loop.
Such embedded for loops are called nested for loops.
 Following diagram depicts a nested for loop flowchart.

Dept. of CSE www.vtuupdates.com Page 27


C Programming for problem solving 18CPS13

Example:
Here is an example program segment with sample outputs that illustrates the working of a
nested for loop:

for(rows=1; rows<=4; rows++)

for(cols=1;cols<=3; cols++)

{
printf(“%d %d”, rows, cols);
}

Working:
1. Initially value of rows=1 and 1 <=4 is true so control enters to
inner loop
2. In inner loop cols=1 and 1<=3 is also true so body of the loop (i.e. printf gets
executed)
Following are the outputs obtained in every repetition of inner/outer for loops:

Dept. of CSE www.vtuupdates.com Page 28


C Programming for problem solving 18CPS13

Output: Output: Output: Output:

1st round: 2nd


round: 3rd
round: 4th
round:
rows=1,1,1 rows=2,2,2 rows=3,3,3 rows=4,4,4
cols=1,2,3 cols=1,2,3 cols=1,2,3 cols=1,2,3

Initializing, Test condition and Updating: Three Components of a Loop

 Normally all loops should have three components:


1. Initialization (example: i=0; j=1 etc)
2. Test condition (example: ctr<=10, i<=20 etc)
3. Updating (example: ctr=ctr+1, i=i+2 etc)

 If any of these three components are missing program behaves indifferently. For
instance if updating statement is missing loop goes into infinite mode as shown in
following example:

void main( )
{
int ctr=1, N=10;

while(ctr<=N)

{
printf(“Hello World\n”); printf(“Hi Galaxy\n”);
}
}

Output: it prints,
Hello World
Hello Galaxy
infinite number of times as ctr value remains 1 forever as

 Let us go through same example with initialization statement missing:


Example:

Dept. of CSE www.vtuupdates.com Page 29


C Programming for problem solving 18CPS13

void main( )
{
int ctr, N=10; while(ctr<=N)
{
printf(“Hello World\n”); printf(“Hi Galaxy\n”); ctr=ctr+1;
}

Output: Loop will not at all get executed as initial value of ctr is unknown!
So program prints nothing.

3. JUMPS IN LOOPS
Break and continue: break and continue are unconditional control construct.
i. break
 This statement is useful to terminate a loop and transfer control out of loop
under special situations.
 break statement works with while, do….while, for and switch statements.
 Following program syntax diagrammatically represents the working
mechanism of break statement.

Note: If break statement is used in the nested loops, the control will come out
from the inner loop; still the outer loop is active.

Dept. of CSE www.vtuupdates.com Page 30


C Programming for problem solving 18CPS13

Note:
Working of break statement:
When condition2 is true the loop gets terminated and control is transferred to
statement5 (which is outside the loop). Here we can observe that even though

Note: If break statement is used in the nested loops, the control will come out from the

inner loop; still the outer loop is active.

Example program for break statement:

void main( )
{
int i; for(i=1;i<=5;i++)
{
if(i==3)

break; printf(“%d ”,i);


}
Output: 1 2

ii. Continue
 Statement is helpful to skip particular set of statements in loop body and to continue
execution from the beginning of loop.
 Following syntax clearly depicts how control shifts to beginning of a loop on finding
continue statement.

Dept. of CSE www.vtuupdates.com Page 31


C Programming for problem solving 18CPS13

Note:
Working of continue statement:
When condition2 is true continue statement is executed which results in transfer
of control to beginning of while loop skipping statement4 and statement5.

Example program for continue statement:


void main()
{
int i; for(i=1;i<=5;i++)
{
if(i==3) continue; printf(“%d ”,i);
}
Output: 1 2 4 5

Computation of Binomial co-efficient


Problem: Binomial coefficients are used in the study of binomial
distributions and readability of multicomponent redundant systems. It is
given by:

A table of binomial coefficients is required to determine the binomial coefficient for any set
of m and x.

Problem Analysis: The binomial coefficient can be recursively calculated as follows:

B(m,0) = 1
B(m, x) = B(m, x-1) [ − +1] , X = 1, 2, 3, …., m

Further,

Dept. of CSE www.vtuupdates.com Page 32


C Programming for problem solving 18CPS13

B(0, 0) = 1
That is, the binomial coefficient is one when either x is zero or m is zero. The program
below points the table of binomial coefficients for m=10. The program employs one do
loop and one while loop.

Program:

#include<stdio.h> #define MAX 10 main( )


{
int m, x, binom;

printf(“ m x”);
for(m = 0; m <=10; ++m) printf(%4d”, m);
printf(“\n \n”);
m = 0;
do
{
printf(“%2d”, m); x = 0;
binom = 1; while(x<=m)
{
if(m == 0 || x ==0) printf(“%4d”, binom);
else
{
binom = binom * (m-x + 1) / x; printf(“%4d”, binom);
}
x = x + 1;
}
printf(“\n”); m=m+1;
}
while (m<= MAX);
printf(“ \n”);
}
OUTPUT:
mx 0 1 2 3 4 5 6 7 8
----------------------------------------------------- ----------------------------------------
- --
0 1
1 1 1
2 1 2 1
3 1 3 3 1
4 1 4 6 4 1
5 1 5 10 10 5 1
6 1 6 15 20 15 6 1

Dept. of CSE www.vtuupdates.com Page 33


C Programming for problem solving 18CPS13

Pascal’s Triangle

 One of the most interesting Number Patterns is Pascal's Triangle (named after
Blaise Pascal, a famous French Mathematician and Philosopher).
 To build the triangle, start with "1" at the top, then continue placing numbers below it in
a triangular pattern.
 Each number is the numbers directly above it added together.

#include <stdio.h>

long factorial(int);

Dept. of CSE www.vtuupdates.com Page 34


C Programming for problem solving 18CPS13

int main()
{
int i, n, c;

printf("Enter the number of rows you wish to see in pascal triangle\n"); scanf("%d",&n);

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

{
for (c = 0; c <= (n - i - 2); c++) printf(" ");

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


printf("%ld ",factorial(i)/(factorial(c)*factorial(i-c)));

printf("\n");
}
return 0;
}
long factorial(int n)
{
int c;
long result = 1;

for (c = 1; c <= n; c++) result = result*c;

return result;
}
QUADRATIC EQUATION

 The Quadratic Formula uses the "a", "b", and "c" from "ax2 + bx + c", where "a", "b",
and "c" are just numbers; they are the "numerical coefficients" of the quadratic equation
they've given you to solve.

Dept. of CSE www.vtuupdates.com Page 35


C Programming for problem solving 18CPS13

#include<stdio.h>
#include<math.h>
void main( )
{
float x1, x2, a, b, c, disc;
printf("Enter the coefficients a, b and c\n");
scanf("%f%f%f",&a,&b,&c);
disc=(b*b)-(4*a*c);
if(disc == 0)
{
x1= -b/(2*a);
x2= -b/(2*a);
printf("The roots are real and equal\n");
printf("1st root = %f\n",x1);
printf("2nd root = %f\n",x2);
}
else if(disc > 0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("The roots are real and distinct\n");
printf("1st root = %f\n",x1);
printf("2nd root = %f\n",x2);
}
else
{
x1=-b/(2*a);
x2=sqrt(fabs(disc))/(2*a);
printf("The roots are imaginary\n");
printf("1st root = %f + i%f\n",x1,x2);
printf("2nd root = %f - i%f\n",x1,x2);
}
}
Output
Enter the coefficients a, b and c 1 2 3
The roots are imaginary
1st root = -1.000000 + i1.414214
2nd root = -1.000000 - i1.414214

Dept. of CSE www.vtuupdates.com Page 36


C Programming for problem solving 18CPS13

Enter the coefficients a, b and c 4 4 1


The roots are real and equal
1st root = -0.500000 2nd root = -0.500000

Enter the coefficients a, b and c 3 6 2


The roots are real and distinct
1st root = -0.422650 2nd root = -1.577350

Programming examples and Exercises


1. What is the output of following program segment? N=4;
M=3;
for (i=0, j=0; i<=N || j<=M; i++, j++)
{
printf(“I=%d J=%d\n”, i , j);
}
Answer: I=0 J=0 I=1 j=1 I=2 j=2 I=3 j=3 I=4 j=4

2. What is the value of k when loop completes in following code? k=1;


while(++k <=n)
{
printf(“%d”, k);
}
a. n+1
b. n-1
c. n+2
d. n
Answer n
Suppose if n=2,
Value printed is: 2

Dept. of CSE www.vtuupdates.com Page 37


C Programming for problem solving 18CPS13

3. for( i=1,j=3; i<3;i++,j--)


printf(“i=%d, j=%d”, i,j)

Output is:
Round-1: i=1, j=3

4. sum=0
for(n=1; n!=10; n+=2)
sum = sum+n;

Output is:
Round-1: n=1, 1!=10 is true
sum=1
Round-2 n=3, 3!=10 is true
sum=4
Round-3 n=5, 5!=10 is true
sum=9
Round-4 n=7, 7!=10 is true
sum=1

5. what is the output of this segment? int x=5, y=50;


output:
while(x<=y)
round-1: x=50/5 10
{
round-2: x=50/10 5
x=y/x;
so
}
x will toggle between 10 & 5

and this loop goes on infinitely


as x<=y is always true!

6. Write for statement to print following sequences:


• 1,2,4,8,16,32
• -4,-2,0,2,4
Ans:

for( i=1; i<=32; i=i*2)


printf(“%d”, i);

for(i=-4; i<=4; i=i+2)

Dept. of CSE www.vtuupdates.com Page 38

You might also like