三个数求最大数、最小数、中间数

原创 2012年03月22日 13:45:04

// 获取中间值

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;

}

版权声明:本文为Mr.Simple原创文章,未经允许不得转载。

Java算法——求三个数中的最大值(或最小值),5种方法

1、if语句嵌套 int a = 10; int b = 30; int c = 20; int max; if (a > b) { if (a > c) { max = a...

C++ 对二维数组的遍历

#include #include using namespace std;int main() { int ia[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; ...

【HDU 6130 Kolakoski】& Kolakoski & 打表

KolakoskiTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Tota...

三个数求最大数、最小数、中间数

// 获取中间值 public static int getMidNum(int a, int b, int c) { return (a c ? b : a > c ? c : a));...

函数模板】求两个整数 或者三个整数中的最大数 自动判断你输入的是几个整数

/*  * 程序的版权和版本声明部分:  * Copyright (c) 2012, 烟台大学计算机学院  * All rights reserved.  * 作    者:毛通  ...

第七周项目三 求三个数中最大数

/* * Copyright (c) 2014, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:max.cpp * 作者:Lingle * 完成日期:201...

Windows平台下GCC编程之从键盘输入3个整数,求其中的最大数和最小数,并输出结果

代码都是我自己练习写的,如果有什么不妥,自己修改就行了,在Code::Blocks16.01+GCC4.9.2 for Windows上编译运行成功//1. 从键盘输入3个整数,求其中的最大数和最小数...

求数组中的最大数和最小数

/*求一个数组中最大值和最小值,只用比较3n/2次,先是每一对比较一个最大值 和最小值,然后用最大值和原先的最大值比较,最小值和原先的最小值比较*/ #include using namespace ...

定义一个由整数组成的数组,然后输入一个整数X,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j

定义一个由整数组成的数组,然后输入一个整数x,如果X不在此数组中,返回小于X的最大数的位置i和大于X的最小数的位置j;若X在此数组中,则返回数组中这个数的位置。...

同时寻找最大数和最小数的最优算法

我们知道,在一个容量为n的数据集合中寻找一个最大数,不管用什么样的比较算法,至少要比较n-1次,就算是用竞标赛排序也得比较n-1次,否则你找到的就不能保证是最大的数。那么,在一个容量为n的数据集合中同...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三个数求最大数、最小数、中间数
举报原因:
原因补充:

(最多只允许输入30个字)