# Problem Set 6: Function and Recursion - 42

## Write the Function for each problem. Print each line trailing with a new line.

## Problem Set 6.1: Passing Arguments and Returning Values

1. Print "Hello World"
   * Function Prototype: void print\_hello(void)
   * Argument: No Argument
   * Process: Print the String Constant "Hello World"
   * Return: No Return
2. Print an Integer Number
   * Function Prototype: void print\_int(int)
   * Argument: One Integer Constant/Variable as Value
   * Process: Print the Integer Number
   * Return: No Return
3. Print a Float Number
   * Function Prototype: void print\_float(float)
   * Argument: One Float Constant/Variable as Value
   * Process: Print the Float Number
   * Return: No Return
4. Print a Double Number
   * Function Prototype: void print\_double(double)
   * Argument: One Double Constant/Variable as Value
   * Process: Print the Double Number
   * Return: No Return
5. Print a Character
   * Function Prototype: void print\_char(char)
   * Argument: One Character Constant/Variable as Value
   * Process: Print the Character
   * Return: No Return
6. Input an Integer Number and return the number
   * Function Prototype: int input\_int()
   * Argument: No Argument
   * Process: Take an Integer Number input from the user
   * Return: Return the Integer Input
7. Input a Float Number and return the number
   * Function Prototype: float input\_float()
   * Argument: No Argument
   * Process: Take a Float Number input from the user
   * Return: Return the Float Input
8. Input a Double Number and return the number
   * Function Prototype: double input\_double()
   * Argument: No Argument
   * Process: Take a Double Number input from the user
   * Return: Return the Double Input
9. Input a Character and return the Character
   * Function Prototype: char input\_char()
   * Argument: No Argument
   * Process: Take Character input from the user
   * Return: Return the Character Input
10. Input a String and return the String
    * Function Prototype: char\* input\_string()
    * Argument: No Argument
    * Process: Take a String input from the user
    * Return: Return the String Input
    * NB: String is a Character Array in C Programming, Return the Array Pointer
11. Print a String
    * Function Prototype: void print\_string(char\*)
    * Argument: One String Argument (Pass Your Name as String) as value
    * Process: Print Hello “Your Name"
    * Return: No Return
    * NB: String is a Character Array in C Programming, Pass a String inside the double quotation ("String Inside")

## Problem Set 6.2: Arithmetic Operation

1. Calculate Square
   * Function Prototype:
     * int square(int)
     * float square(float)
     * double square(double)
   * Argument: One Integer/Float/Double Constant/Variable as Value
   * Process: Calculate the Square of the given Integer/Float/Double Number
   * Return: Return the Squared Number
2. Calculate Cube
   * Function Prototype:
     * int cube(int)
     * float cube(float)
     * double cube(double)
   * Argument: One Integer/Float/Double Constant/Variable as Value
   * Process: Calculate the Cube of the given Integer/Float/Double Number
   * Return: Return the Cubed Number
3. Calculate Power (X^Y)
   * Function Prototype: power(base, exponent) \[Consider the First Argument as Base and Second Argument as Exponent]
     * int power(int, int)
     * float power(float, int), float power(float, float)
     * double power(double, int), double power(double, double)
   * Argument: One Integer/Float/Double Constant/Variable as Base and Another Integer/Float/Double Constant/Variable as Exponent
   * Process: Calculate the Power of the given Integer/Float/Double Numbers as Base^Exponent
   * Return: Return the Resulting Number
4. Calculate Summation
   * Function Prototype: int summation(int, int)
   * Argument: Two integer numbers
   * Process: Calculate the summation of the given numbers
   * Return: Return the summation of the given numbers
5. Calculate Difference
   * Function Prototype: int difference(int, int)
   * Argument: Two integer numbers
   * Process: Calculate the difference between the given numbers
   * Return: Return the difference between the given numbers
6. Calculate Product
   * Function Prototype: int product(int, int)
   * Argument: Two integer numbers
   * Process: Calculate the product of the given numbers
   * Return: Return the product of the given numbers
7. Calculate Quotient
   * Function Prototype: int quotient(int, int)
   * Argument: Two integer numbers
   * Process: Calculate the quotient of the given numbers
   * Return: Return the quotient of the given numbers
8. Calculate Reminder
   * Function Prototype: int reminder(int, int)
   * Argument: Two integer numbers
   * Process: Calculate the remainder of the given numbers
   * Return: Return the remainder of the given numbers
9. Calculate Average
   * Function Prototype: float average(int, int, int)
   * Argument: Three integer numbers
   * Process: Calculate the average of the given numbers
   * Return: Return the average of the given numbers
10. Find the Area of a Triangle using the Base and Height
    * Function Prototype: float triangle\_area(float, float)
    * Argument: Two float numbers as base and height
    * Process: Calculate the area of the triangle using base and height
    * Return: Return the area of the triangle
11. Find the Area of a Triangle using the length of 3 sides
    * Function Prototype: float triangle\_area(float, float, float)
    * Argument: Three float numbers as the length of 3 sides
    * Process: Calculate the area of the triangle using the length of 3 sides
    * Return: Return the area of the triangle
12. Find the Area of a Rectangle using the length of 3 sides
    * Function Prototype: float rectangle\_area(float, float)
    * Argument: Two float numbers as the length of 2 sides
    * Process: Calculate the area of the rectangle using the length of 3 sides
    * Return: Return the area of the rectangle
13. Find the Area of a Circle using the Radius
    * Function Prototype: float circle\_area(float)
    * Argument: One float number as the radius
    * Process: Calculate the area of the circle using the radius
    * Return: Return the area of the circle
14. Convert the Temperature from Celsius Scale to Fahrenheit Scale
    * Function Prototype: float to\_fahrenheit(float)
    * Argument: One float number as the temperature in the Celsius scale
    * Process: Calculate the temperature in Fahrenheit Scale
    * Return: Return the temperature to Fahrenheit Scale
15. Convert the Temperature from Fahrenheit Scale to Celsius Scale
    * Function Prototype: float to\_celsius(float)
    * Argument: One float number as the temperature in the Fahrenheit scale
    * Process: Calculate the temperature in Celsius Scale
    * Return: Return the temperature to the Celsius Scale

## Problem Set 6.3: Conditional Statement

1. Determine EVEN or ODD
   * Function Prototype:
     * void test\_even\_odd(int)
   * Argument: One Integer Variable as Value
   * Process: If the given number is even then print Even, otherwise print Odd
   * Return: No Return
2. Determine EVEN or ODD
   * Function Prototype:
     * int is\_even(int)
     * \_Bool is\_even(int)
     * bool is\_even(int)
   * Argument: One Integer Variable as Value
   * Process: If the given number is even then return true, otherwise return false
   * Return: Return true or false based on the condition
3. Determine Leap Year or Not
   * Function Prototype:
     * int is\_leap\_year(int)
     * \_Bool is\_leap\_year(int)
     * bool is\_leap\_year(int)
   * Argument: One Integer Variable as Value
   * Process: If the given number is Leap Year then return true, otherwise return false
   * Return: Return true or false based on the condition
4. Find the Maximum between 2 numbers
   * Function Prototype:
     * int maximum(int, int)
     * float maximum(float, float)
     * double maximum(double, double)
     * char maximum(char, char)
   * Argument: Two Integer/float/double/character Variables as Value
   * Process: If the first number is larger then return it, otherwise return the other number
   * Return: Return the maximum between two numbers
5. Find the Minimum between 2 numbers
   * Function Prototype:
     * int minimum(int, int)
     * float minimum(float, float)
     * double minimum(double, double)
     * char minimum(char, char)
   * Argument: Two Integer/float/double/character Variables as Value
   * Process: If the first number is smaller then return it, otherwise return the other number
   * Return: Return the minimum between two numbers
6. Find the Maximum between three (3) numbers
   * Function Prototype:
     * int maximum(int, int, int)
     * float maximum(float, float, float)
     * double maximum(double, double, double)
     * char maximum(char, char, char)
   * Argument: Three Integer/float/double/character Variables as Value
   * Process: If the first number is the largest then return it, if the second number is the largest then return it, otherwise return the third number
   * Return: Return the maximum among three numbers
7. Find the Minimum between three (3) numbers
   * Function Prototype:
     * int minimum(int, int, int)
     * float minimum(float, float, float)
     * double minimum(double, double, double)
     * char minimum(char, char, char)
   * Argument: Three Integer/float/double/character Variables as Value
   * Process: If the first number is the smallest then return it, if the second number is the smallest then return it, otherwise return the third number
   * Return: Return the minimum among three numbers

## Problem Set 6.4: Loop

1. Calculate the summation of natural numbers up to N.
2. Calculate the summation of odd natural numbers up to N.
3. Calculate the summation of even natural numbers up to N.
4. Calculate the summation of the square of odd natural numbers up to N.
5. Calculate the summation of the cube of even natural numbers up to N.
6. Calculate factorial N.
7. Print each divisor (or factor) of the given number.
8. Calculate the total number of divisors of a number.
9. Calculate the summation of divisors of a number.
