1. 程式人生 > >三個數求最大數、最小數、中間數

三個數求最大數、最小數、中間數

// 獲取中間值

public static int getMidNum(int a, int b, int c)

 {

return (a < b ? (b < c ? b : a < c ? c : a) : (b > c ? b : a > c ? c: a));
}

// 獲取最大值

public static int getMaxNum(int a, int b, int c)

 {

return (a < b ? (b < c ? c : b) : (a < c ? c : a));
}
// 獲取最小值

public static int getMinNum(int a, int b, int c) 

{

return (a > b ? (b > c ? c : b) : (a > c ? c : a));

}

例子:  編寫主函式,提示使用者通過鍵盤輸入一個3位整數,判斷是否為有效輸入,呼叫一個子函式,取出該整數的各個位數並重新排列,輸出可能的最大整數和最小整數。

// 獲取最大數字
int const& getMaxNum(int const& x, int const& y, int const& z);

// 獲取最小數字
int const& getMinNum(int const& x, int const& y, int const& z);

// 獲取中間數字
int const& getMidNum(int const& x, int const& y, int const& z);

// 數字的新組合
void getNewCombination(int const& num);
// 數字的新組合
void getNewCombination(int const& num)
{

int hBit;// 百位

int tBit;// 十位

int oBit;// 個位

int max = 0,min = 0;

int t = 0;

hBit = num / 100;

tBit = (num/10)%10;

oBit = ((num%100)%10);

max = getMaxNum(hBit, tBit, oBit);

min = getMinNum(hBit, tBit, oBit);

t = getMidNum(hBit,tBit,oBit);

cout<<"The Maximum num is :  " << (max*100 + t*10 + min)<<endl;

cout<<"The Minimum num is :  " << (min*100 + t*10 + max)<<endl;

}
// 獲得最大的數字
int const& getMaxNum(int const& x, int const& y, int const& z)
{

int temp = (x>y)? x : y;

return temp > z ? temp : z;

}
// 求中間大小的數字
int const& getMidNum(int const& x, int const& y, int const& z)
{

return (x < y ? (y < z ? y : x < z ? z : x) : (y > z ? y : x > z ? z : x));  

}
// 獲取最小的數
int const& getMinNum(int const& x, int const& y, int const& z)
{

int temp = (x<y)? x : y;

return temp<z ? temp : z;

}
void main()
{

int num;

do 

{

cout<<"請輸入一個三位數 :  ";

cin>>num;

if (num < 100 || num > 1000)

{

MessageBox(NULL,"數值範圍為100--999","提示",MB_OK);

}

} while (num < 100 || num > 1000);

getNewCombination(num);

cout<<endl;

}

http://blog.csdn.net/bboyfeiyu/article/details/7382821