CH 5
CH 5
What is Function?
◻ A function is a group of statements that perform a specific task.
◻ It divides a large program into smaller parts.
◻ A function is something like hiring a person to do a specific job for you.
◻ Every C program can be thought of as a collection of these functions.
◻ Program execution in C language starts from the main function.
Syntax
void main()
{
// body part
}
◻ Why function ?
Avoids rewriting the same code over and over.
Using functions it becomes easier to write programs and keep track of what they
doing.
Types of Function
Function
void main()
{
....
func1(); Function call
}
void func1()
{
.... Function definition
//function body
....
}
Function Prototype
A function Prototype also know as function declaration.
A function declaration tells the compiler about a function name and
how to call the function.
It defines the function before it is being used or called.
A function prototype needs to be written at the beginning of the
program.
Syntax
return-type function-name (arg-1, arg 2, …);
Example
void addition(int, int);
Function Definition
A function definition defines the functions header and body.
A function header part should be identical to the function prototype.
Function return type
Function name
List of parameters
A function body part defines function logic.
Function statements
Syntax Example
return-type function-name (arg-1, arg void addition(int x, int y)
2, …) {
{ printf("Addition is=%d“,
//... Function body (x+y));
} }
WAP to add two number using add(int, int) Function
Program
1 #include <stdio.h>
2 void add(int, int); // function declaration
3
4 void main()
5 {
6 int a = 5, b = 6;
7 add(a, b); // function call
8 }
9
10 void add(int x, int y) // function definition
11 {
12 printf("Addition is = %d", x + y);
13 }
Output
Addition is = 11
Actual parameters and Formal parameters
◻ Values that are passed to the called function from the main function
are known as Actual parameters.
◻ The variables declared in the function prototype or definition are
known as Formal parameters.
◻ When a method is called, the formal parameter is temporarily "bound"
to the actual parameter.
return
(expression);
WAP to find maximum number from two
number
Program
1 #include <stdio.h> Output
2 int max(int a, int b); Max value is : 200
3 void main()
4 {
5 int a = 100;
6 int b = 200;
7 int maxvalue;
8 maxvalue = max(a, b);
9 printf("Max value is : %d\n",
10 maxvalue);
11 }
12 int max(int a, int b)
13 {
14 if (a > b)
15 return a; // return a
16 else
17 return b; // return b
18 }
WAP to calculate the Power of a Number
Program Output
1 #include <stdio.h> Enter any number : 5
2 int power(int, int); Enter power of number : 3
3 void main() 5's power 3 = 125
4 {
5 int num, pow, res;
6 printf("Enter any number : ");
7 scanf("%d", &num);
8 printf("Enter power of number : ");
9 scanf("%d", &pow);
10 res = power(num, pow);
11 printf("%d's power %d = %d", num, pow, res);
12 }
13 int power(int n, int p)
14 { int r = 1;
15 while (p >= 1)
16 {
17 r = r * n;
18 p--;
19 }
20 return r;}
WAP to find Factorial of a Number
Program Output
1 #include <stdio.h> Enter the number :
2 int fact(int); 5
3 int main() factorial = 120
4 {
5 int n, f;
6 printf("Enter the number :\n");
7 scanf("%d", &n);
8 f = fact(n);
9 printf("factorial = %d", f);
10 }
11 int fact(int n)
12 {
13 int i, fact = 1;
14 for (i = 1; i <= n; i++)
15 fact = fact * i;
16 return fact;
17 }
WAP to check Number is Prime or not
Program Program contd.
1 #include <stdio.h> 14 int checkPrime(int n1)
2 int checkPrime(int); 15 {
3 void main() 16 int i = 2;
4 { while (i <= n1 / 2)
17
5 int n1, prime; {
6 printf("Enter the number :");
18 if (n1 % i == 0)
7 scanf("%d", &n1); 19 return 0;
8 prime = checkPrime(n1); 20 else
9 if (prime == 1) 21 i++;
10 printf("The number %d is a prime 22 }
number.\n", n1); 23 return 1;
11 else 24 }
Output
12 printf("The number %d is not a
prime number.\n", n1); Enter the number :7
13 } The number 7 is a prime number.
Category of Function
Storage Initial
Storage Scope Life Example
Specifier Value
Within
Register CPU Garbage End of block register int
block
{register} register var;