Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
2 views

C Language (unit-I)

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

C Language (unit-I)

C language
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 25

UNIT-1

Introduction to C
C is a programming language developed at AT & T’s Bell Laboratories of USA in 1972. It was
designed and written by a man named Dennis Ritchie. In the late seventies C began to replace the
more familiar languages of that time like PL/I, ALGOL, etc.
Major parts of popular operating systems like Windows, UNIX, Linux is still written in C. This
is because even today when it comes to performance (speed of execution) nothing beats C.
Moreover, if one is to extend the operating system to work with new devices one needs to write
device driver programs. These programs are exclusively written in C. C seems so popular is
because it is reliable, simple and easy to use.
There is a close analogy between learning English language and learning C language. The
classical method of learning English is to first learn the alphabets used in the language, then
learn to combine these alphabets to form words, which in turn are combined to form sentences
and sentences are combined to form paragraphs. Learning C is similar and easier. Instead of
straight-away learning how to write programs, we must first know what alphabets, numbers and
special symbols are used in C, then how using them constants, variables and keywords are
constructed, and finally how are these combined to form an instruction. A group of instructions
would be combined later on to form a program. So a computer program is just a collection of
the instructions necessary to solve a specific problem. The basic operations of a computer
system form what is known as the computer’s instruction set. And the approach or method
that is used to solve the problem is known as an algorithm.

So for as programming language concern these are of three types.


1) Low level language
2) Assembly level language
3) High level language
Low level language:

Low level languages are machine level and assembly level language. In machine level
language computer only understand digital numbers i.e. in the form of 0 and 1. So,
instruction given to the computer is in the form binary digit, which is difficult to
implement instruction in binary code. This type of program is not portable, difficult to
maintain and also error prone.

Assembly level language:

The assembly language is on other hand modified version of machine level language.
Where instructions are given in English like word as ADD, SUM, MOV etc. It is easy to
write and understand but not understandable by the machine. So the translator used here
is assembler to translate into machine level. Although language is bit easier, programmer
has to know low level details related to low level language. In the assembly level
language the data are stored in the computer register, which varies for different computer.
Hence it is not portable.

High level language:

These languages are machine independent, means it is portable. The language in this
category is Pascal, Cobol, Fortran etc. High level languages are understood by the
machine. So it needs to translate by the translator into machine level.

A translator is software which is used to translate high level language as well as low
level language in to machine level language. Three types of translator are there:
 Compiler
 Interpreter
 Assembler

Compiler and interpreter are used to convert the high level language into machine level
language. The program written in high level language is known as source program and
the corresponding machine level language program is called as object program. Both
compiler and interpreter perform the same task but there working is different. Compiler
read the program at-a-time and searches the error and lists them. If the program is error
free then it is converted into object program. When program size is large then compiler is
preferred. Whereas interpreter read only one line of the source code and convert it to
object code. It checks error, statement by statement and hence of take more time.

Integrated Development Environments (IDE):


The process of editing, compiling, running, and debugging programs is often managed
by a single integrated application known as an Integrated Development Environment, or
IDE for short. An IDE is a windows-based program that allows us to easily manage large
software programs, edit files in windows, and compile, link, run, and debug programs.
On Mac OS X, CodeWarrior and Xcode are two IDEs that are used by many
programmers. Under Windows, Microsoft Visual Studio is a good example of a popular
IDE. Kylix is a popular IDE for developing applications under Linux. Most IDEs also
support program development in several different programming languages in addition to
C, such as C# and C++.
Structure of C Language program:
1) Comment line
2) Preprocessor directive
3) Global variable declaration
4) main function( )
{
Local variables;
Statements;
}
Comment line:
It indicates the purpose of the program.
It is represented as /*……………………………..*/ and // is used for single line
comment
Comment line is used for increasing the readability of the program. It is useful in
explaining the program and generally used for documentation. It is enclosed within the
decimeters. Comment line can be single or multiple lines but should not be nested. It can
be anywhere in the program except inside string constant & character constant.
Preprocessor Directive:
#include tells the compiler to include information about the standard input/output library.
It is also used in symbolic constant such as #define PI 3.14(value). The stdio.h (standard
input output header file) contains definition &declaration of system defined function such
as printf( ), scanf( ), pow( ) etc. Generally printf() function used to display and scanf()
function used to read value.
Global Declaration:
This is the section where variable are declared globally so that it can be access by all the
functions used in the program. And it is generally declared outside the function:
main()
It is the user defined function and every function has one main() function from where
actually program is started and it is encloses within the pair of curly braces. The main( )
function can be anywhere in the program but in general practice it is placed in the first
position.
Syntax:
main()
{
……..
……..
……..
}
The main( ) function return value when it declared by data type as
int main( )
{
return 0;
}
The main function does not return any value when void (means null/empty) as
void main(void ) or void main()
{
printf (“C language”);
}
Output: C language
The program execution starts with opening braces and end with closing brace.
And in between the two braces declaration part as well as executable part is mentioned.
And at the end of each line, the semi-colon is given which indicates statement
termination.
/*First c program with return statement*/
#include<stdio.h>
int main ()
{
printf ("welcome to c Programming language.\n");
return 0;
}
Output: welcome to c programming language.
When the program is executed, each of the statements of the program is sequentially
executed in turn. If the program requests any data from the user, known as input, the
program temporarily suspends its execution so that the input can be entered. Or, the
program might simply wait for an event, such as a mouse being clicked, to occur. Results
that are displayed by the program, known as output, appear in a window, sometimes
called the console. If the program does not produce the desired results, it is necessary to
go back and reanalyze the program’s logic. This is known as the debugging phase,
during which an attempt is made to remove all the known problems or bugs from the
program. To do this, it will most likely be necessary to make changes to original source
program.
/* Simple program to add two numbers…………………….*/
#include<stdio.h>
int main ()
{
int v1, v2, sum; //v1,v2,sum are variables and int is data type declared
v1 = 150;
v2 = 25;
sum = v1 + v2;
printf ("The sum of %i and %i is= %i\n", v1, v2, sum);
return 0;
}
Output: The sum of 150 and 25 is=175
Character Set:
A character denotes any alphabet, digit or special symbol used to represent
information. Valid alphabets, numbers and special symbols allowed in C are given in the
following table. The alphabets, numbers and special symbols when properly combined to
form constants, variables and keywords.

Identifiers:
Identifier is user defined word used to name of entities like variables, arrays, functions,
structures etc.
Rules for naming identifiers are:
1) Name should only consists of alphabets (both upper and lower case), digits and
underscore (_) sign.
2) First characters should be alphabet or underscore
3) Name should not be a keyword
4) Since C is a case sensitive, the upper case and lower case considered differently, for
example code, Code, CODE etc. are different identifiers.
5) Identifiers are generally given in some meaningful name such as value, net_salary,
age, data etc.
An identifier name may be long, some implementation recognizes only first eight
characters, most recognize 31 characters. ANSI standard compiler recognizes 31
characters.
Some invalid identifiers are 5cb, int, res#, avg no etc.
Keyword:
There are certain words reserved for doing specific task, these words are known as
reserved word or keywords. These words are predefined and always written in lower
case or small letter. These keywords can’t be used as a variable name as it assigned with
fixed meaning. Some examples are int, short, signed, unsigned, default, volatile, float,
long, double, break, continue, typedef, static, do, for, union, return, while, do, extern,
register, enum, case, goto, struct, char, auto, const etc.
Data types:
Data types refer to an extensive system used for declaring variables or functions of
different types before its use. The type of a variable determines how much space it
occupies in storage and how the bit pattern stored is interpreted. The value of a variable
can be changed any time.
C has the following 4 types of data type
 Basic built-in data types: int, float, double, char
 Enumeration data type: enum
 Derived data type: pointer, array, structure, union
 Void data type: void
A variable declared to be of type int can be used to contain integral values only—that is,
values that do not contain decimal places. A variable declared to be of type float can be
used for storing floating- point numbers (values containing decimal places). The double
type is the same as type float, only with roughly twice the precision. The char data type
can be used to store a single character, such as the letter a, the digit character 6, or a
semicolon similarly A variable declared char can only store character type value.
There are two types of type qualifier in C
 Size qualifier: short, long S
 Sign qualifier: signed, unsigned
When the qualifier unsigned is used the number is always positive, and when signed is
used number may be positive or negative. If the sign qualifier is not mentioned, then by
default sign qualifier is assumed. The range of values for signed data types is less than
that of unsigned data type. Because in signed type, the left most bit is used to represent
sign, while in unsigned type this bit is also used to represent the value. The size and range
of the different data types on a 16 bit machine is given below:
Constants:
Constant is a any value that cannot be changed during program execution. In C, any
number, single character, or character string is known as a constant. A constant is an
entity that doesn’t change whereas a variable is an entity that may change. For example,
the number 50 represents a constant integer value. The character string "Programming in
C is fun.\n" is an example of a constant character string. C constants can be divided into
two major categories: Primary Constants Secondary Constants.
These constants are further categorized as
 Numeric constant
 Character constant
 Real constant
Numeric constant:
Numeric constant consists of digits. It required minimum size of 2 bytes and max 4 bytes.
It may be positive or negative but by default sign is always positive. No comma or space
is allowed within the numeric constant and it must have at least 1 digit. The allowable
range for integer constants is -32768 to 32767. Truly speaking the range of an Integer
constant depends upon the compiler. For a 16-bit compiler like Turbo C or Turbo C++
the range is –32768 to 32767. For a 32-bit compiler the range would be even greater.
Mean by a 16-bit or a 32- bit compiler, what range of an Integer constant has to do with
the type of compiler.
It is categorized a integer constant and real constant. An integer constant is whole
numbers which have no decimal point. Types of integer constants are:
o Decimal constant: 0-------9(base 10)
o Octal constant: 0-------7(base 8)
o Hexadecimal constant: 0----9, A------F(base 16)

In decimal constant first digit should not be zero unlike octal constant first digit must be
zero(as 076, 0127) and in hexadecimal constant first two digit should be 0x/ 0X (such as
0x24, 0x87A). By default type of integer constant is integer but if the value of integer
constant is exceeds range then value represented by integer type is taken to be unsigned
integer or long integer. It can also be explicitly mention integer and unsigned integer type
by suffix l/L and u/U.
Real constant:
It is also called floating point constant. To construct real constant we must follow the
rule,
a. Real constant must have at least one digit.
b. It must have a decimal point.
c. It could be either positive or negative.
d. Default sign is positive.
e. No commas or blanks are allowed within a real constant.
Ex.:
+325.34
426.0
-32.76
To express small/large real constant exponent(scientific) form is used where number is
written in mantissa and exponent form separated by e/E. Exponent can be positive or
negative integer but mantissa can be real/integer type, for example 3.6*105=3.6e+5. By
default type of floating point constant is double, it can also be explicitly defined it by
suffix of f/F.
Character constant:
Character constant represented as a single character enclosed within a single quote. These
can be single digit, single special symbol or white spaces such as ‘9’,’c’,’$’, ‘ ’ etc. Every
character constant has a unique integer like value in machine’s character code as if
machine using ASCII (American standard code for information interchange). Some
numeric value associated with each upper and lower case alphabets and decimal integers
are as:
 A------------ Z ASCII value (65-90)
 a-------------z ASCII value (97-122)
 0-------------9 ASCII value (48-59)
 ; ASCII value (59)
String constant:
Set of characters are called string and when sequence of characters are enclosed within a
double quote (it may be combination of all kind of symbols) is a string constant. String
constant has zero, one or more than one character and at the end of the string null
character(\0) is automatically placed by compiler. Some examples are “,bidtyut” , “908”,
“3”,” ”, “A” etc. In C although same characters are enclosed within single and double
quotes it represents different meaning such as “A” and ‘A’ are different because first one
is string attached with null character at the end but second one is character constant with
its corresponding ASCII value is 65.
Symbolic constant:
Symbolic constant is a name that substitutes for a sequence of characters and, characters
may be numeric, character or string constant. These constant are generally defined at the
beginning of the program as #define name value, here name generally written in upper
case for example
#define MAX 10
#define CH ‘b’
#define NAME “swadhin”
Variables:
Variable is a data name which is used to store some data value or symbolic names for
storing program computations and results. The value of the variable can be change during
the execution. The rule for naming the variables is same as the naming identifier. Before
used in the program it must be declared. Declaration of variables specifies its name, data
types and range of the value that variables can store depends upon its data types.
Syntax:
int a;
char c;
float f;
Variable initialization:
When we assign any initial value to variable during the declaration, is called initialization
of variables. When variable is declared but contain undefined value then it is called
garbage value. The variable is initialized with the assignment operator such as
datatype variable name=constant;
Example:

int a=20;

or

int a; a=20;

Expressions:
An expression is a combination of variables, constants, operators and function call. It can
be arithmetic, logical and relational for example:-
int z= x+y // arithmetic expression
a>b //relational
a==b // logical
func(a, b) // function call

Expressions consisting entirely of constant values are called constant expressions.


So, the expression
121 + 17 - 110
is a constant expression because each of the terms of the expression is a constant value.
But if i were declared to be an integer variable,
the expression 180 + 2 – j would not represent a constant expression.
Operator:
This is a symbol use to perform some operation on variables, operands or with the
constant. Some operator required 2 operand to perform operation or some required single
operation. Several operators are there those are, arithmetic operator, assignment,
increment, decrement, logical, conditional, comma, size of, bitwise and others.
1. Arithmetic Operator :

This operator used for numeric calculation. These are of either Unary arithmetic
operator, Binary arithmetic operator. Where Unary arithmetic operator required only
one operand such as +,-, ++, --,!, tiled. And these operators are addition, subtraction,
multiplication, division. Binary arithmetic operator on other hand required two
operand and its operators are +(addition), -(subtraction), *(multiplication), /(division),
%(modulus). But modulus cannot applied with floating point operand as well as there
are no exponent operator in c.
Unary (+) and Unary (-) is different from addition and subtraction.
When the operands are integer then it is called integer arithmetic and the result is
always integer. When both the operand are floating point then it is called floating
arithmetic and when operand is of integer and floating point then it is called mix type
or mixed mode arithmetic . And the result is in float type.
2. Assignment Operator:

A value can be stored in a variable with the use of assignment operator. The
assignment operator(=) is used in assignment statement and assignment expression.
Operand on the left hand side should be variable and the operand on the right hand
side should be variable or constant or any expression. When variable on the left hand
side is occur on the right hand side then we can avoid by writing the compound
statement.
For example,
int x= y;
int Sum=x+y+z;

3. Increment and Decrement Operator:

The Unary operator ++, --, is used as increment and decrement which acts upon
single operand. Increment operator increases the value of variable by one .Similarly
decrement operator decrease the value of the variable by one. And these operator can
only used with the variable, but cann't use with expression and constant as ++6 or ++
(x+y+z).
It again categories into prefix post fix . In the prefix the value of the variable is
incremented 1st, then the new value is used, where as in postfix the operator is
written after the operand(such as m++,m--).

EXAMPLE

let y=12;
z= ++y;
y= y+1;
z= y;
Similarly in the postfix increment and decrement operator is used in the operation.
And then increment and decrement is performed.

EXAMPLE

let x= 5;
y= x++;
y=x;
x= x+1;

4. Relational Operator:

It is use to compared value of two expressions depending on their relation. Expression


that contain relational operator is called relational expression. Here the value is assign
according to true or false value.
 (a>=b) || (b>20)
 (b>a) && (e>b)
 (b!=7)

5. Conditional Operator:

It sometimes called as ternary operator. Since it required three expressions as operand


and it is represented as (? , :).

SYNTAX
exp1 ? exp2 :exp3;

Here exp1 is first evaluated. It is true then value return will be exp2 . If false then
exp3.

EXAMPLE

void main()
{
int a=10, b=2
int s= (a>b) ? printf(“value is:%d”,a) : printf(“value is:%d”,b);
}

Output:
Value is: 10

6. Comma Operator :
Comma operator is use to permit different expression to be appear in a situation
where only one expression would be used. All the expression are separator by comma
and are evaluated from left to right.
EXAMPLE

int i, j, k, l;
for(i=1,j=2;i<=5;j<=10;i++;j++)

7. Sizeof Operator:

Size of operator is a Unary operator, which gives size of operand in terms of byte that
occupied in the memory. An operand may be variable, constant or data type qualifier.
Generally it is used make portable program(program that can be run on different
machine) . It determines the length of entities, arrays and structures when their size
are not known to the programmer. It is also use to allocate size of memory
dynamically during execution of the program.

EXAMPLE

main( )
{
int sum; float f;
printf( "%d%d" ,sizeof(f), sizeof (sum) );
printf("%d%d", sizeof(235 L), sizeof(A));
}

8. Bitwise Operator:

Bitwise operator permit programmer to access and manipulate of data at bit level.
Various bitwise operator enlisted are
 one's complement (~)
 bitwise AND (&)
 bitwise OR (|)
 bitwise XOR (^) l
 eft shift (<>)
These operator can operate on integer and character value but not on float and double.
In bitwise operator the function showbits( ) function is used to display the binary
representation of any integer or character value.
In one's complement all 0 changes to 1 and all 1 changes to 0. In the bitwise OR its
value would obtaining by 0 to 2 bits.
As the bitwise OR operator is used to set on a particular bit in a number. Bitwise
AND the logical AND. It operate on 2operands and operands are compared on bit by
bit basic. And hence both the operands are of same type.
Logical or Boolean Operator:
Operator used with one or more operand and return either value zero (for false) or one (for true).
The operand may be constant, variables or expressions. And the expression that combines two or
more expressions is termed as logical expression. C has three logical operators:
Operator Meaning
&& AND
|| OR
! NOT
Where logical NOT is a unary operator and other two are binary operator. Logical AND gives
result true if both the conditions are true, otherwise result is false. And logical OR gives result
false if both the condition false, otherwise result is true.
Precedence and associativity of operators:

Operators Description Precedence level Associativity


() functions call 1 left to right
[] array subscript
-> Arrow operator
. Dot operator

Operators Description Precedence level Associativity


+ Unary plus 2 Right to left
- Unary minus
++ increment
-- decrement
! Logical not
~ One’s compliment
* indirection
& address
(datatype) typecast
sizeof Size in byte

Operators Description Precedence level Associativity


* multiplication 3 Left to right
/ division
% modulus

Operators Description Precedence level Associativity


+ Addition 4 Left to right
- Subtraction
Operators Description Precedence level Associativity
<< Left shift 5 Left to right
>> Right shift

Operators Description Precedence level Associativity


<= less than equal to 6 Left to right
>= greater than equal to
< less than
> greater than

Operators Description Precedence level Associativity


== Double equal to 7 Left to right
!= Not equal to

Operators Description Precedence level Associativity


& bitwise AND 8 Left to right
^ bitwise XOR 9
| bitwise OR 10
&& logical AND 11
|| logical OR 12
?: Conditional operator 13
=, +=, -=, *=, /=, %= Assignment operator 14 Left to right
, Coma operator 15

Control Statements:
Generally C program statement is executed in a order in which they appear in the program. But
sometimes we use decision making condition for execution only a part of program, which is
called control statement. Control statement defined how the control is transferred from one part
to the other part of the program. There are several control statement like
 If statement
 Switch statement
 Conditional operator(ternary) statement
 Goto statement
 Looping statement
If statement:
Statement execute set of command like when condition is true and its syntax is
if (condition)
Statement;
The statement is executed only when condition is true. If the if statement body is consists of
several statement then better to use pair of curly braces. Here in case condition is false then
compiler skip the line within the “if block”.
void main()
{
int n;
printf (“ enter a number:”);
scanf(“%d”,&n);
if (n>10)
Printf(“ number is grater”);
}
Output:
enter a number: 12
number is greater
if…..else Statement:
It is bidirectional conditional control statement that contains one condition & two possible
actions. Condition may be true or false, where non-zero value regarded as true & zero value
regarded as false. If condition are satisfy true, then a single or block of statement executed
otherwise another single or block of statement is executed.
Its syntax is:-
if (condition)
{
Statement1;
Statement2;
}
else
{
Statement1;
Statement2;
}
Else statement cannot be used without if or no multiple else statement are allowed within
one if statement. It means there must be a if statement with in an else statement.
Example:-
/* To check a number is eve or odd */
void main()
{
int n;
printf (“enter a number:”);
scanf (“%d”, &n);
if (n%2==0)
printf (“even number”);
else
printf(“odd number”);
}
Output:
enter a number:121
odd number
Nesting of if …else:
When there are another if else statement in if-block or else-block, then it is called nesting of if-
else statement.
Syntax is :-
if (condition)
{
if (condition)
statement1;
else
statement2;
}
If….else LADDER:
In this type of nesting there is an if else statement in every else part except the last part. If
condition is false control pass to block where condition is again checked with its if statement.
Syntax is:-
if (condition)
Statement1;
else if (condition)
statement2;
else if (condition)
statement3;
else
statement4;
This process continue until there is no if statement in the last block. if one of the condition is
satisfy the condition other nested “else if” would not executed.
But it has disadvantage over if else statement that, in if else statement whenever the condition is
true, other condition are not checked. While in this case, all conditions are checked.
Break statement (break):
Sometimes it becomes necessary to come out of the loop even before loop condition becomes
false then break statement is used. Break statement is used inside loop and switch statements. It
cause immediate exit from that loop in which it appears and it is generally written with
condition. It is written with the keyword as break. When break statement is encountered loop is
terminated and control is transferred to the statement, immediately after loop or situation where
we want to jump out of the loop instantly without waiting to get back to conditional state.
When break is encountered inside any loop, control automatically passes to the first statement
after the loop. This break statement is usually associated with if statement.
Example:
void main()
{
int j=0;
for( ; j<6; j++)
{
If(j==4)
break;
}
}
Output:
0123
Continue statement (keyword - continue):
Continue statement is used for continuing next iteration of loop after skipping some statement of
loop. When it encountered control automatically passes through the beginning of the loop. It is
usually associated with the if statement. It is useful when we want to continue the program
without executing any part of the program.
The difference between break and continue is, when the break encountered loop is terminated
and it transfer to the next statement and when continue is encounter control come back to the
beginning position.
In while and do while loop after continue statement control transfer to the test condition and then
loop continue where as in, for loop after continue control transferred to the updating expression
and condition is tested.
Example:-
void main()
{
int n;
for(n=2; n<=9; n++)
{
if(n==4)
{
continue;
printf(“%d”, n);
}
}
printf(“out of loop”);
}
Output:
2 3 5 6 7 8 9 out of loop
Note: This is just an illustration for continue. We will study Looping in next Unit.

Switch…case
The switch statement allows us to execute one code block among many alternatives.
We can do the same thing with the if …else…if ladder. However, the syntax of switch statement
is much easier to read and write.
Syntax:
switch(expression)
{
case constant1:
{
Statement(s);
}

case constant2:
{
Statement(s);
}
case constant3:
{
Statement(s);
}

.
.
.
case constantn:
{
Statement(s);
}
default:
{
Statement(s);
}

}
Working of switch…case:
The expression evaluated once and compared with the value of each case label.
 If there is a match, the corresponding statements after the matching label are executed.
For example, if the value of the expression is equal to constant2, statements after case
constant2: are executed until break is encountered.
 If there is no match, the default statements are executed.
Note:
 If we don’t use the break statement, all other statements after the matching ladel
also executed.
 The default statement is optional.

Flow chart:

Single expression

Yes
Equal to case Code block1
constant1??

No

Equal to case Yes Code block2


constant2??

No

Yes
Equal to case Code block3
constant3??

No
Default code
Example:

/* simple calculator */

#include<stdio.h>

int main()

char operation;

double n1, n2;

printf(“Enter operator(+, -, *, /):”);

scanf(“%c”, &operation);

printf(“Enter two operands :”);

scanf(“%lf %lf”,&n1,&n2);

switch(operation)

case ‘+’ :

printf(“% . lf + % . lf=% . lf ”, n1,n2,n1+n2);

break;

case ‘-’ :

printf(“% . lf - % . lf=% . lf ”, n1,n2,n1-n2);

break;

case ‘*’ :

printf(“% . lf * % . lf=% . lf ”, n1,n2,n1*n2);

break;

case ‘/’ :

printf(“% . lf / % . lf=% . lf ”, n1,n2,n1/n2);

break;
default:

printf(“Error!!! Operator is not correct….”);

return 0;

Example:

Enter operator(+, -, *, /): -

Enter two operands: 32.5 12.4

32.5-12.4=20.1

Goto statement:

The goto statement allows us to transfer control of the program to specified label.

Syntax:

goto label;

… … ….

… … ….

… … ….

label:

statements;

The label is an identifier. When the goto statement is encountered, the control of the program
jumps to label: and starts executing the code.

Example:

// program to calculate sum and average of positive number

// if the user enters a negative number, the sum and average are displayed

#include<stdio.h>

int main()
{

const int maxInput=100;

int I;

double number, average, sum=0.0;

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

printf(%d. Enter a number:”, i);

scanf(“%lf”, &number);

// go to jump if the user enters a negative number

if(number<0.0)

goto jump;

sum+=number;

jump:

average=sum/(i-1);

printf(“Sum= %.2f\n”, sum);

printf(“Average=%.2f”, average);

return 0;

Output:

1. Enter a number: 3
2. Enter a number: 4.3
3. Enter a number: 9.3
4. Enter a number: -2.9

Sum=16.60

Average=5.53

You might also like