FUNCTIONS
In the following example, the function accepts a single data
variable, but does not return any information.
/* Program to calculate a specific factorial number */
#include <stdio.h>
void calc_factorial( int ); /* ANSI function prototype */
void calc_factorial( int n )
{
int i, factorial_number = 1;
for( i = 1; i <= n; ++i )
factorial_number *= i;
printf("The factorial of %d is %d\n", n, factorial_number );
}
main()
{
int number = 0;
printf("Enter a number\n");
scanf("%d", &number );
calc_factorial( number );
}
Sample Program Output
Enter a number
3
The factorial of 3 is 6
Lets look at the function calc_factorial(). The declaration of the function
void calc_factorial( int n )
indicates there is no return data type and a single integer is accepted, known inside the body of the function as n. Next comes the declaration of the local variables,
int i, factorial_number = 0;
It is more correct in C to use,
auto int i, factorial_number = 0;
as the keyword auto designates to the compiler that the variables are local. The program works by accepting a variable from the keyboard which is then passed to the function. In other words, the variable number inside the main body is then copied to the variable n in the function, which then calculates the correct answer.