C program to find maximum and minimum using functions

Write a C program to input two or more numbers from user and find maximum and minimum of the given numbers using functions. How to find maximum and minimum among two or more numbers using functions in C programming.

Example:
Input two numbers: 10
20
Output maximum: 20
Output minimum: 10

Required knowledge

Basic C programming, Function, Variable argument list

Till now we already know how to find maximum or minimum between two numbers using if else or by using switch case or by using conditional/ternary operator. Here we will be coding the logic of any of the above methods to find maximum or minimum into functions.

Program to find maximum and minimum of two numbers

/* 
 * C program to find maximum and minimum between two numbers using functions
 */

#include <stdio.h>


/* Function declarations */
int max(int num1, int num2);
int min(int num1, int num2);



int main() 
{
    int num1, num2, maximum, minimum;
    
    /*
     * Reads input in two numbers from user
     */
    printf("Enter any two numbers: ");
    scanf("%d%d", &num1, &num2);
    
    maximum = max(num1, num2);  //Calls the maximum function
    minimum = min(num1, num2);  //Calls the minimum function
    
    printf("\nMaximum = %d\n", maximum);
    printf("Minimum = %d", minimum);
    
    return 0;
}



/**
 * Finds maximum between two numbers.
 */
int max(int num1, int num2)
{
    return (num1 > num2 ) ? num1 : num2;
}



/**
 * Finds minimum between two numbers.
 */
int min(int num1, int num2) 
{
    return (num1 > num2 ) ? num2 : num1;
}


Output
Enter any two numbers: 10 20

Maximum = 20
Minimum = 10

Note: You can also use variable argument list to find maximum or minimum between two or more variables at once.

Program to find maximum and minimum between two or more numbers

/* 
 * C program to find maximum and minimum between two numbers or more numbers using functions
 */

#include <stdio.h>
#include <limits.h>
#include <stdarg.h>


/* Function declarations */
int max(int args, ...);
int min(int args, ...);



int main() 
{   
    /*
     * Demonstrates the use of variable argument list
     */
    printf("Maximum of three numbers: (10, 30, 20) = %d\n", max(3, 10, 30, 20));
    printf("Maximum of five numbers: (5, -45, 4, 60, 100) = %d\n", max(5, -45, 4, 60, 100));
    
    printf("Minimum of four numbers: (-5, 0, 10, 50) = %d\n", min(4, -5, 0, 10, 50));
    printf("Minimum of two numbers: (10, 20) = %d\n", min(2, 10, 20));
    
    return 0;
}



/**
 * Finds maximum between two or more integer variables
 * @param args Total number of integers
 * @param ... List of integer variables to find maximum
 * @return Maximum among all integers passed
 */
int max(int args, ...)
{
    int i, max, cur;
    va_list valist;
    va_start(valist, args);
    
    max = INT_MIN;
    
    for(i=0; i<args; i++)
    {
        cur = va_arg(valist, int); //Gets the next elements in list
        if(max < cur)
            max = cur;
    }
    
    va_end(valist); //Clean the memory assigned by valist
    
    return max;
}



/**
 * Finds minimum between two or more integer variables
 * @param args Total number of integers
 * @param ... List of integer variables to find minimum
 * @return Minimum among all integers passed
 */
int min(int args, ...) 
{
    int i, min, cur;
    va_list valist;
    va_start(valist, args);
    
    min = INT_MAX;
    
    for(i=0; i<args; i++)
    {
        cur = va_arg(valist, int);
        if(min > cur)
            min = cur;
    }
    
    va_end(valist);
    
    return min;
}


Output
Maximum of three numbers: (10, 30, 20) = 30
Maximum of five numbers: (5, -45, 4, 60, 100) = 100
Minimum of four numbers: (-5, 0, 10, 50) = -5
Minimum of two numbers: (10, 20) = 10


Happy coding ;)


Any doubt or suggestion write here. I will try my best to help. Before posting your code you must escape it to view. To format your source code and use format highlighting, post your source code inside
< code >< pre > -- Your source code -- < /pre >< /code > (Remove spaces from pre and code tags).

No comments:

Post a Comment