1901373
C++三种方式实现三数求最大(小)值

最平凡最简单的问题

通过不同的方式实现

有助于我们对复杂问题的处理

希望起到抛砖引玉的作用

大家如果还有其他

新奇 巧妙的算法 请共同分享 !!26~

一 if语句判断:

//貌似是最基本的方法

int main(){

int num1,num2,num3,max;

cout<<"请输入第一个数:"<<endl;

cin>>num1;

cout<<"请输入第二个数:"<<endl;

cin>>num2;

cout<<"请输入第三个数:"<<endl;

cin>>num3;

if(num1>num2) max=num1;

else max=num2;

if(num3>max) max=num3;

cout<<"最大数是:"<<max<<endl;

return 0;

}

二 三目运算符实现:

//三个数会更加复杂繁琐不推荐用

#include *本站禁止HTML标签噢*

using namespace std;

int main()

{

float num1,num2,num3,max;

cout<<"请输入第一个数:"<<endl;

cin>>num1;

cout<<"请输入第二个数:"<<endl;

cin>>num2;

cout<<"请输入第三个数:"<<endl;

cin>>num3;

max=(num1>num2 ? num1 : num2 )> num3 ? (num1>num2 ? num1 :num2) : num3;

cout<<"最大数是:"<<max;

return 0;

}

三 函数嵌套调用:

//非常灵活的金钥匙

#include *本站禁止HTML标签噢*

using namespace std;

int Max(int x,int y,int z);

int max(int x,int y);

int main()

{

int num1,num2,num3,m;

cout<<"请输入第一个数:"<<endl;

cin>>num1;

cout<<"请输入第二个数:"<<endl;

cin>>num2;

cout<<"请输入第三个数:"<<endl;

cin>>num3;

m=Max(num1,num2,num3);

cout<<"最大数是:"<<m;

return 0;

}

int Max(int x,int y,int z)

{

int m;

m=max(max(x,y),max(x,z));

return m;

}

int max(int x,int y)

{

if(x>y)

return x;

else

return y;

}

化石快龙
第三个用嵌套太麻烦了
展开Biu

第三个用嵌套太麻烦了,好长

[查看全文]
封獣★ぬえ
请输入三个整数
展开Biu

这个?

[mw_shl_code=cpp,true]

#include *本站禁止HTML标签噢*

int main()

try{

cout << "请输入三个整数\n";

int item = 0;

cin >> item;

int max = item;

for ( int i = 1; i < 3 && cin >> item; ++i)

if ( item > max) max = item;

if (!cin) throw exception("input expected");

cout << "The max = " << max << '\n';

return 0;

}catch(exception& e){

cerr << e.what() <<'\n';

return 1;

}

[/mw_shl_code]

[查看全文]
ileuyix
南南
本帖最后由
展开Biu

本帖最后由 南南 于 2012-12-16 12:50 编辑

两个条件运算符 写在宏定义里

这应该是C里最快的方法了吧

虽然看起来多了次比较一模一样的比较

不过现在绝大多数的编译器都会优化掉那次多余的运算吧

[查看全文]
秋声赋
四季之后
展开Biu

四季之后 发表于 2012-12-16 00:53

这个用递归太麻烦啊

不是递归 是2个函数

很明显作者还是停留在C语言

C++重载这么好用的东西没用

不过还是支持下

[查看全文]
四季之后
这个用递归太麻烦啊
展开Biu

这个用递归太麻烦啊

[查看全文]