C++ Program to Find Largest of Three Numbers

In this article, you will learn and get code to find and print largest of entered three numbers by user at run-time in C++. The program is created in following ways:

  • Find largest of three numbers without function
  • Find largest of three numbers using user-defined Function

Both program uses if-else, to find and print largest or biggest among any three numbers entered by user.

Find Largest of Three Numbers in C++

To find the largest number among three numbers in C++ programming, you have to ask from user to enter the three numbers. Now use if-else ladder to find out the largest among three as shown in the program given below:

The question is, write a program in C++ that finds largest of three numbers. Here is its answer:

#include<iostream>
using namespace std;
int main()
{
    int numOne, numTwo, numThree, larg;
    cout<<"Enter the Three Numbers: ";
    cin>>numOne>>numTwo>>numThree;
    if(numOne>numTwo)
    {
        if(numTwo>numThree)
            larg = numOne;
        else
        {
            if(numThree>numOne)
                larg = numThree;
            else
                larg = numOne;
        }
    }
    else
    {
        if(numTwo>numThree)
            larg = numTwo;
        else
            larg = numThree;
    }
    cout<<"\nLargest Number = "<<larg;
    cout<<endl;
    return 0;
}

This program was build and run under Code::Blocks IDE. Here is its sample run:

C++ program find biggest of three

Now supply any three numbers as input say 1, 2, 3. Here the third number is largest and second number is second largest. Press ENTER key to print the largest among these three numbers as shown in the output given below:

C++ program find largest of three

Here is another sample run with user input 1, 3, 2. Here the second number is largest and third number is second largest:

C++ program find largest in three

Here is the one more sample run with user input, 3, 1, 2:

find largest of three numbers c++

Main Logic of Previous Program

The main logic behind the code is:

  • Initially checks whether the first number is greater than second:
    • If first number is greater than second, then checks whether second number is greater than third:
      • If it is true. Then first number is greater than second and second number is greater than third
      • So the first number is the largest number
    • And if second number is not greater than third, means that, the third number is greater than second
    • Because third number is greater than second, so checks whether the third number is also greater than first:
      • If it is true. Then third number is greater than first and second both
      • So the third number is the largest number
      • And if third number is not greater than first, means that, the first number is greater than third
      • Because first number is greater than third and second both
      • So first number is the largest number
  • If first number does not greater than second, then second number is greater than first:
    • Because second number is greater than first, therefore checked whether the second number is also greater than third:
      • If it is true. Then second number is greater than first and third both
      • So second number is the largest
      • And if second number is not greater than third, means that, third number is greater than second
      • Because third number is greater than second, and second number is greater than first
      • So third number is the largest

Previous Program Explained with Dry Run

The dry run of above program with user input 2, 1, 3 goes like:

  • When user enters 2, 1, 3 in same pattern, then 2 gets stored in numOne, 1 gets stored in numTwo, and 3 gets stored in numThree. That is, numOne=2, numTwo=1, and numThree=3
  • Now the condition, numOne>numTwo or 2>1 evaluates to be true, threfore program flow goes inside the if block
  • Now the condition, numTwo>numThree or 1>3 evaluates to be false, therefore program flow does not goes inside if's body, rather it goes to its else's part
  • And there, the condition numThree>numOne or 3>2 evaluates to be true, therefore program flow goes inside the if's body
  • And the value of numThree gets initialized to larg
  • Because the condition evaluates to be true, therefore program flow skip else's part
  • And for outermost if-else, because the condition of if evaluates to be true, therefore again in this case also, else's part gets skipped
  • So program flow goes to the statement that prints the value of larg as output
  • That will print the largest among entered three numbers

Find Largest of three Numbers using Function

This program does the same job as of previous program. But internally this program uses a different approach to do the task. That is, this program is created using a user defined function, findLargest()

The function, findLargest() takes three numbers as its arguments, and returns the largest among its three argument. So the largest number gets returned by this function and initialized to larg inside the main() function. Therefore just print the value of larg

#include<iostream>
using namespace std;
int findLargest(int, int, int);
int main()
{
    int numOne, numTwo, numThree, larg;
    cout<<"Enter the Three Numbers: ";
    cin>>numOne>>numTwo>>numThree;
    larg = findLargest(numOne, numTwo, numThree);
    cout<<"\nLargest Number = "<<larg;
    cout<<endl;
    return 0;
}
int findLargest(int nOne, int nTwo, int nThree)
{
    if(nOne>nTwo)
    {
        if(nTwo>nThree)
            return nOne;
        else
        {
            if(nThree>nOne)
                return nThree;
            else
                return nOne;
        }
    }
    else
    {
        if(nTwo>nThree)
            return nTwo;
        else
            return nThree;
    }
}

This program produces the same output as of previous program.

Same Program in Other Languages

C++ Online Test


« Previous Program Next Program »



Like/Share Us on Facebook 😋