// file project03.cpp
// date 09/10/2007
// author AOU
#include <iostream>
using namespace std;
/*
Problem:
Write a function that will find the highest two
values out of the three values given
Examples:
Input (3,1,2) => (3,2)
Input (1,1,2) => (2,1)
Algorithm:
input x,y,z
output a,b
option1: use any sort to put x,y,z in increasing order, a=z,b=y
if x>y then swap(x,y)
if x>z then swap(x,z)
if y>z then swap(y,z)
a=z
b=y
option2: compare values 9x,y,z) and calculate a,b
if x>=y and x>=z then
a=x
if y>=z then b=y else b=z
else if y>=x and y>=z then
a=y
if x>=z then b=x else b=z
else
a=z
if x>=y then b=x else b=y
end if
option1: use any sort to put x,y,z in increasing order, a=z,b=y
do the following 2 times
if x>y then swap(x,y)
if y>z then swap(y,z)
end do
a=z
b=y
*/
void findMax2(int x, int y, int z, int &a, int &b);
void swap(int &p, int &q);
void main(void)
{
int v1, v2;
findMax2(1,2,3,v1,v2);
cout << v1 << endl;
cout << v2 << endl;
}
void findMax2(int x, int y, int z, int &a, int &b)
{
for (int i=1; i<=2; i++)
{
if (x>y) swap(x,y);
if (y>z) swap(y,z);
}
a=z;
b=y;
}
void swap(int &p, int &q)
{
int temp = p;
p = q;
q = temp;
}
|