输入三个整数x,y,z,请把这三个数由小到大输出。一条语句的写法

tanwenhai123 2012-06-17 05:37:22
#include<iostream>
using namespace std;
void main()
{
int x,y,z;
cin>>x>>y>>z;
x<y?(x<z?x:(z^=x,x^=z,z^=x)):(y<z?(x^=y,y^=x,x^=y):(x^=z,z^=x,x^=z));
cout<<x<<" "<<y<<" "<<z<<" "<<endl;
system("pause");
}
这方法应该够简洁了..
...全文
1396 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
大愚若智_ 2012-06-23
  • 打赏
  • 举报
回复
看起来倒是很伤脑筋
liuwons 2012-06-23
  • 打赏
  • 举报
回复
这样做的目的是什么?
Aurantius 2012-06-23
  • 打赏
  • 举报
回复
一堆三目运算符写在一起,看起来就头痛~
  • 打赏
  • 举报
回复
我不觉得是整洁,我反而觉得难懂,倒不如分开几行写,简单易懂,难道我们会觉得这样全缩在一行就是短小精悍吗?
笨蛋糕 2012-06-22
  • 打赏
  • 举报
回复
简洁指的不是代码行数少,而是可读性好
窗外蓝天 2012-06-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

可读性狠中药
[/Quote]
对的,如果代码出了问题,折磨的还是自己。
tanwenhai123 2012-06-22
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]

写个蛋疼的:

cout << (2*a+b+c -abs(a-b)-abs(a-c) - abs(b-c-abs(a-b)+abs(a-c))) / 4
<< (2b+2c + abs(b-c-abs(a-b)+abs(a-c) - abs(b-c+abs(a-b)-abs(a-c))) / 4
<< (2*a+b+c +abs(a-b)+abs(a-c) + ab……
[/Quote]
这个....
kevinyank 2012-06-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 7 楼 的回复:

伤心.....

楼主哇, 大家为你好呢. 你练得一身武功, 非但不去除暴安良, 却做那调戏妇女之事, 大家苦言规劝, 是为你着想, 哈哈!
[/Quote]
这个回复犀利。。。
regainworld 2012-06-21
  • 打赏
  • 举报
回复
写个蛋疼的:

cout << (2*a+b+c -abs(a-b)-abs(a-c) - abs(b-c-abs(a-b)+abs(a-c))) / 4
<< (2b+2c + abs(b-c-abs(a-b)+abs(a-c) - abs(b-c+abs(a-b)-abs(a-c))) / 4
<< (2*a+b+c +abs(a-b)+abs(a-c) + abs(b-c+abs(a-b)-abs(a-c))) / 4
luoage_ 2012-06-21
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int main(){
int x,y,z;
cin >> x >> y >>z;
x>y?x:(x^=y,y=x^y,x^=y);
x>z?x:(x^=z,z=x^z,x^=z);
y>z?y:(y^=z,z=y^z,y^=z);
cout << x << y << z;
return 0;
}

其实楼主的意思是这个,只是三位运算几个放在一块就有点不伦不类了....
新铺村长 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]

可读性狠中药
[/Quote]

顶一下
wyfwx 2012-06-21
  • 打赏
  • 举报
回复
可读性狠中药
tanwenhai123 2012-06-21
  • 打赏
  • 举报
回复
LZ弱爆了...发现很难写,不知道有没有哪位大神能写出个高效点的出来..
tanwenhai123 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

LZ 你的算法不正确,你可以验证下。1,5,4
[/Quote]
谢谢指正啊,这代码可读性确实差
篾匠 2012-06-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

伤心.....
[/Quote]
楼主哇, 大家为你好呢. 你练得一身武功, 非但不去除暴安良, 却做那调戏妇女之事, 大家苦言规劝, 是为你着想, 哈哈!
tanwenhai123 2012-06-19
  • 打赏
  • 举报
回复
伤心.....
liujun_ips 2012-06-19
  • 打赏
  • 举报
回复
编译完之后都是一行。。。
sl51314240 2012-06-19
  • 打赏
  • 举报
回复

//---------------------------------------------------------------------------
template<typename T>
inline T minimum(const T& param1, const T& param2, const T& param3)
{
T ret = param1;
if(param2 < ret) ret = param2;
if(param3 < ret) ret = param3;

return ret;
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
int a = 1;
int b = 2;
int c = 3;
int ret1 = minimum(a, b, c);

double da = 1.1;
double db = 1.2;
double dc = 1.3;
double ret2 = minimum(da, db, dc);
std::cout << "a, b, c = " << ret1 << std::endl;
std::cout << "da, db, dc = " << ret2 << std::endl;

return 0;
}
//---------------------------------------------------------------------------


我就写一个函数,调用的时候还不是一行,但是可读性比你那个强多了
W170532934 2012-06-19
  • 打赏
  • 举报
回复
额,难道真的错了??
lionghua 2012-06-19
  • 打赏
  • 举报
回复
LZ 你的算法不正确,你可以验证下。1,5,4
加载更多回复(6)

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧