//Diego Martinez CSC5 Chapter 7, P.487, #1
/*******************************************************************************
* DISPLAY TWO LARGEST EVEN NUMBERS
* ______________________________________________________________________________
* This program works with a collection of 15 integers provided by the user. It
* focuses the two highest even values amoung them and displays them.
*
* Computation is based on the Formula:
* n > currresnt largest
* second largest < n< largest
*______________________________________________________________________________
* INPUT
* 15 integer values entered by the user
*
*
* OUTPUT
* Largest even number
* Second largest even number
*******************************************************************************/
#include <iostream>
using namespace std;
// ===== FUNCTION PROTOTYPES =====
void inputArray(int arr[], int size);
void findLargestEven(int arr[], int size, int &largest, int &secondLargest);
void displayResult(int largest, int secondLargest);
// ===== MAIN FUNCTION =====
int main()
{
// ===== DATA DICTIONARY =====
const int SIZE = 15; // number of elements in array
int numbers[SIZE]; // array to store integers
int largestEven; // largest even number
int secondLargestEven; // second largest even number
// ===== FUNCTION CALLS =====
inputArray(numbers, SIZE);
findLargestEven(numbers, SIZE, largestEven, secondLargestEven);
displayResult(largestEven, secondLargestEven);
return 0;
}
// ===== FUNCTION DEFINITIONS =====
// Function to input array values
void inputArray(int arr[], int size)
{
cout << "Enter 15 integers:\n";
for (int i = 0; i < size; i++)
{
cin >> arr[i];
}
}
// Function to find largest and second largest even numbers
void findLargestEven(int arr[], int size, int &largest, int &secondLargest)
{
largest = -1;
secondLargest = -1;
for (int i = 0; i < size; i++)
{
if (arr[i] % 2 == 0) // check if even
{
if (arr[i] > largest)
{
secondLargest = largest;
largest = arr[i];
}
else if (arr[i] > secondLargest && arr[i] != largest)
{
secondLargest = arr[i];
}
}
}
}
// Function to display results
void displayResult(int largest, int secondLargest)
{
if (largest == -1)
{
cout << "No even numbers were entered.\n";
}
else if (secondLargest == -1)
{
cout << "Only one even number found: " << largest << endl;
}
else
{
cout << "Largest even number: " << largest << endl;
cout << "Second largest even number: " << secondLargest << endl;
}
}