Copy of Copy of UNIT - V ---Functions
Copy of Copy of UNIT - V ---Functions
FUNCTIONS
Concept and need of functions
Types of function
Suppose, you need to create a program to create a circle and color it. You can create two
functions to solve this problem:
---Dividing a complex problem into smaller chunks makes our program easy to understand and
---A function is a set of statements that take inputs, do some specific computation
and produces output.
----The idea is to put some commonly or repeatedly done task together and make a
function so that instead of writing the same code again and again for different
inputs, we can call the function.
How user-defined function works?
#include <stdio.h>
void functionName()
{
... .. ...
... .. ...
}
int main()
{
... .. ...
... .. ...
functionName();
... .. ...
... .. ...
}
The execution of a C program begins from the main() function.
void functionName()
The control of the program jumps back to the main() function once code inside
the function definition is executed.
Advantages of user-defined function----
#include <stdio.h>
int main()
int n1,n2;
scanf("%d %d",&n1,&n2);
return 0;
}
void addNumbers(int a, int b) // function definition
{
Output---
int result;
Enter two numbers 8
result = a+b;
5
printf("sum = %d",result);
sum=13
}
Function prototype
A function prototype is simply the declaration of a function that specifies function's name,
parameters and return type. It doesn't contain function body.
A function prototype gives information to the compiler that the function may later be used in the
program.
Syntax of function prototype
returnType functionName(type1 argument1, type2 argument2, ...);
In the above example, int addNumbers(int a, int b); is the function prototype which
provides the following information to the compiler:
The function prototype is not needed if the user-defined function is defined before the
main() function.
Calling a function
In the above example, the function call is made using addNumbers(n1, n2);
statement inside the main() function.
Function definition
Function definition contains the block of code to perform a specific task. In our
example, adding two numbers and returning it.
When a function is called, the control of the program is transferred to the function
definition. And, the compiler starts executing the codes inside the body of a function.
Passing arguments to a function
In programming, argument refers to the variable passed to the function. In the above
example, two variables n1 and n2 are passed during the function call.
The parameters a and b accepts the passed arguments in the function definition.
These arguments are called formal parameters of the function.
The type of arguments passed to a function and the formal parameters
must match, otherwise, the compiler will throw an error.
The return statement terminates the execution of a function and returns a value to the
calling function. The program control is transferred to the calling function after the
return statement.
In the above example, the value of the result variable is returned to the main
function. The sum variable in the main() function is assigned this value.
Syntax of return statement---
return (expression);
For example,
return a;
return (a+b);
The type of value returned from the function and the return type specified in the
function prototype and function definition must match.
#include <stdio.h>
int addNumbers(int a, int b); // function prototype
int main()
{
int n1,n2,sum;
return 0;
}
int addNumbers(int a, int b) // function definition
{
int result;
result = a+b;
return result; // return statement
}
#include <stdio.h>
int sum;
sum = num1+num2;
return sum;
}
int main()
{
int var1, var2;
printf("Enter number 1: ");
scanf("%d",&var1);
printf("Enter number 2: ");
scanf("%d",&var2);
return 0;
}
Output:
Output: 220
Types of User-defined Functions
#include<stdio.h>
int main()
{
greatNum(); // function call
return 0;
}
void greatNum() // function definition
{
int i, j;
printf("Enter 2 numbers that you want to compare...");
scanf("%d%d", &i, &j);
if(i > j) {
printf("The greater number is: %d", i);
}
else {
printf("The greater number is: %d", j);
}
}
Function with no argument no return value--
#include <stdio.h>
void addition();
int main()
addition();
return 0;
}
void addition(){
int sum;
scanf("%d",&var1);
scanf("%d",&var2);
sum = var1+var2;
}
Function with no arguments and a return value
#include<stdio.h>
int main()
{
int result;
result = greatNum(); // function call
printf("The greater number is: %d", result);
return 0;
}
int greatNum() // function definition
int i, j, greaterNum;
if(i > j) {
greaterNum = i;
else {
greaterNum = j;
return greaterNum;
}
Function with arguments and no return value
#include<stdio.h>
int main()
{
int i, j;
printf("Enter 2 numbers that you want to compare...");
scanf("%d%d", &i, &j);
greatNum(i, j); // function call
return 0;
}
void greatNum(int x, int y) // function definition
if(x > y) {
else {
}
Function with arguments and a return value
#include<stdio.h>
int main()
{
int i, j, result;
printf("Enter 2 numbers that you want to compare...");
scanf("%d%d", &i, &j);
result = greatNum(i, j); // function call
printf("The greater number is: %d", result);
return 0;
}
int greatNum(int x, int y) // function definition
{
if(x > y) {
return x;
}
else {
return y;
}