0% found this document useful (0 votes)
59 views30 pages

Dr. B. Hemanth Kumar Professor Dept of IT

The document discusses different types of functions in C programming including library functions, user-defined functions, and how to define functions using prototypes, definitions, and calls. It provides examples of functions without and with arguments and return types to demonstrate how to create and use functions. The document also covers common library functions and advantages of using functions to structure code.

Uploaded by

saiteja
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)
59 views30 pages

Dr. B. Hemanth Kumar Professor Dept of IT

The document discusses different types of functions in C programming including library functions, user-defined functions, and how to define functions using prototypes, definitions, and calls. It provides examples of functions without and with arguments and return types to demonstrate how to create and use functions. The document also covers common library functions and advantages of using functions to structure code.

Uploaded by

saiteja
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/ 30

Dr. B.

Hemanth Kumar
Professor
Dept of IT
Functions
 Introduction
 Function definition
 Library Functions
 User Defined Functions
 Function prototype
 Types of Function
 Function Definition
 Using Functions
 Recursive functions
B.H.K
Introduction
#include <stdio.h>
int main( void )
{ int x, y,s;
FUNCTION printf(“Enter two integer values: ”);
scanf(“%d %d”, &x, &y);
s=x+y;
printf(“\nSum of %d and %d is %d\n”, x,y,s);
return 0;
}

O/P:
Enter two integer values: 6 7
Sum of 6B.H.K
and 7 is 13
Introduction
#include <stdio.h>
#include<math.h>
int main( void )
{ int x; float s;
FUNCTION printf(“Enter an integer value: ”);
scanf(“%d”, &x);
s=sqrt(x);
printf(“\n square root of %d is %f\n”, x,s);
return 0;
}
O/P:
Enter an integer
B.H.K
value: 25
Square root of 25 is 5.00000
Common Library Functions
#include <stdio.h>
 printf()
#include <math.h>
 fprintf()
 sin(x)
 scanf()
 cos(x)
 sscanf()
 tan(x)
 ...
 exp(x) // ex
 log(x) // loge x #include <string.h>
 log10(x) // log10 x  strcpy()
 sqrt(x) // x  0  strcat()
 pow(x, y) // xy  strcmp()
 ...  strlen()
 ...
B.H.K
User Defined Functions
 Basically there are two categories of
functions:

1. Predefined functions: available in C


standard library such as stdio.h, math.h,
string.h etc.
2. User-defined functions: functions that
programmers create for a specific task

B.H.K
Function Definition
Function is a named independent fragment of code
that accepts zero or more argument values and
performs a specific task.
Every C program has at least one function which is
a main() function.

B.H.K
Advantages of Functions
 Functions make programs easier to
understand
 Functions can be called several times in
the same program, allowing the code to
be reused
 Minimize the usage of Memory.

B.H.K
Creating a Function
 Function Declaration(prototype)
 Function definition
 Function calling

B.H.K
Function prototype
 A function declaration (prototype) tells
the compiler about a function's name,
return type, and parameters(arguments).
 Syntax :

return_type function_name( parameter list );

Example: Function name

double area(float , float );


Return type Parameters
B.H.K
Function definition
 A function definition provides the actual body(task) of the
function.
 The function body contains a collection of statements that define
what the function does.
 Syntax
return_type function_name( parameter list )
{ function body(task)
--------
return value;
}

Example: double area(float l, float b)


{ double a;
a=l*b;
return a;
}
B.H.K
Function calling
 Make use of the defined function in the program
is function calling
 To use the function you must know the name of
the function and what type of arguments(values)
you need to provide to perform the task.
 Syntax
function_name( argument list--- );

 Example : area(10.0, 20.0);

B.H.K
Simple Example
#include<stdio.h>
Function prototype double area(float,float);
main()
{ float a,b;
double A;
printf("Enter two values : ");
scanf("%f%f",&a,&b);
Function calling A=area(a,b);
printf("\nArea is :%f\n",A);

}
double area(float l,float b)
{
double a;
Function definition a=l*b;
return a;
B.H.K
}
Different types of functions
 functions
without arguments and
without return type.
 functions
with arguments and
without return type.
 functions
without arguments and
with return type.
 functions
with arguments and
with return type.
B.H.K
Introducing void key word
 A function
without argument and
without return type
can be represented by using the key word
void

B.H.K
Function prototypes
 functions without arguments and without return type.
Example :
void function_name(void)
no return type no arguments
void function_name( )

 functions with arguments and without return type.


Example : void function_name( int,float)

 functions without arguments and with return type.


Example :
int function_name(void)

 functions with arguments and with return type.


Example :
int function_name(int,float)
B.H.K
Introducing return key word
 If The prototype has any return_type then the
function definition can return the value by using
the key word return.
double area(float , float );

double area(float l, float b)


{ double a;
a=l*b;
return a;
}

If there is no return statement in the function body by


default the function will return an integer value 0(zero)
B.H.K
Function without arguments and without return type

void factorial()
{ int n,i,f;
#include<stdio.h>
f=1;
void factorial();
printf("enter a +ve int number :”);
main()
scanf("%d",&n);
{
for(i=1;i<=n;i++)
printf("fact of 1st number-\n");
{
factorial();
f=f*i;
printf("fact of 2nd number-\n");
}
factorial();
printf(" FACT OF %d is :%d\n\n",
}
n,f);
}

B.H.K
Function with arguments and without return type

#include<stdio.h> void factorial(int n)


void factorial(int); { int i,f;
main() f=1;
{ int x,y;
printf("enter two +ve numbers"); for(i=1;i<=n;i++)
scanf("%d%d",&x,&y); {
printf("fact of 1st number-\n"); f=f*i;
factorial(x); }
printf("fact of 2nd number-\n"); printf(" FACT OF %d is :%d\n\n",
factorial(y); n,f);
} }

B.H.K
Function without arguments and with return type

#include<stdio.h> int factorial()


int factorial(); { int n,i,f;
main() f=1;
{ int f; printf("enter a +ve int number :”);
printf("fact of 1st number-\n"); scanf("%d",&n);
f=factorial(); for(i=1;i<=n;i++)
printf(" FACT is :%d\n\n", f); {
printf("fact of 2nd number-\n"); f=f*i;
f=factorial(); }
printf(" FACT is :%d\n\n",f); return f;
} }

B.H.K
Function with arguments and with return type

#include<stdio.h>
int factorial(int);
main() int factorial(int n)
{ int x,y, f; { int i,f;
printf("enter two +ve numbers"); f=1;
scanf("%d%d",&x,&y);
printf("fact of 1st number-\n"); for(i=1;i<=n;i++)
f=factorial(x); {
printf(" FACT OF %d is :%d\n\n", f=f*i;
x,f)
}
printf("fact of 2nd number-\n");
return f;
f=factorial(y);
}
printf(" FACT OF %d is :%d\n\n",
y,f)
}
B.H.K
Formal and Actual Parameters
#include<stdio.h>
 Actual Parameters:
double area(float,float);
Parameters that are
main()
passed when calling the
{ float x,y;
function.
double A;
printf("Enter two values : ");
Actual parameters (x & y)
scanf("%f%f",&a,&b);
A=area(x,y);
printf("\nArea is :%f\n",A);
 Formal Parameters:
}
Parameters that are
double area(float l,float b)
declared in function
{
definition.
double a;
a=l*b; Formalif parameters (l & b)
return a;
} B.H.K
Passing Arrays to functions
#include<stdio.h>
void display(int[]); void display(int[]);
main()
{ int x[5],i; void display(int a[])
for(i=0;i<5;i++) { int i;
{ printf("\nenter value: ");
scanf("%d",&x[i]); for(i=0;i<5;i++)
} {
printf("\n------Array elements-- printf(" %d \n",a[i]);
---\n"); }
display(x);
}
}

B.H.K
Recursive Functions
 Calling a function within the same function
is a recursive function
 There must be any conditional statement
in that function to terminate the recursion
process.

B.H.K
Recursive Function
#include<stdio.h>
int factorial(int n)
int factorial(int);
{
main()
int f;
{ int x,f;
if(n==1)
printf("\nenter value: ");
return 1;
scanf("%d",&x);
else
f=factorial(x);
f=n*factorial(n-1);
printf("\n---Factorial of %dis
return f;
%d -----\n",x,f);
}
}

Calling recursively
B.H.K
Call by value and Call by reference
 Call by value: Passing actual value to the
calling function
 Call by reference: Passing reference(
address) to the calling function

B.H.K
Call by Reference
#include<stdio.h>
void swap(int*,int*);
main() void swap(int*x,int*y)
{ int a,b; {
printf("Enter two values : "); int t;
scanf("%d%d",&a,&b); t=*x;
printf("\nA :%d, B : %d \n",a,b); *x=*y;
swap(&a,&b); *y=t;
}
Passing address

printf("\nA :%d, B : %d n",a,b);


}

B.H.K
STRUCTURES
struct Books {
char title[50];
char subject[100];
int book_id; };
struct Books Book1; /* Declare Book1 of type Book */
struct Books Book2; /* Declare Book2 of type Book */
/* book 1 specification */
strcpy( Book1.title, "C Programming");
strcpy( Book1.subject, "C Programming Tutorial");
Book1.book_id = 6495407;
/* book 2 specification */
strcpy( Book2.title, "Telecom Billing");
strcpy( Book2.subject, "Telecom Billing Tutorial");
Book2.book_id = 6495700; B.H.K
STRUCTURES

struct Books {
char title[50];
int book_id; };
int main( ) {
struct Books Book1; /* Declare Book1 of type Book */
strcpy( Book1.title, "C Programming");
Book1.book_id = 6495407;
/* print Book1 info */
printf( "Book 1 title : %s\n", Book1.title);
printf( "Book 1 book_id : %d\n", Book1.book_id);
}

B.H.K
Structures as Function Arguments

struct Books {
char title[50]; int book_id; };
void printBook( struct Books book );
int main( ) {
struct Books Book1; /* Declare Book1 of type Book */
strcpy( Book1.title, "C Programming");
Book1.book_id = 6495407;
/* print Book1 info */
printBook( Book1 );
return 0; }
void printBook( struct Books book ) {
printf( "Book title : %s\n", book.title);
printf( "Book book_id : %d\n", book.book_id);
B.H.K
}

You might also like