【发布时间】:2012-06-14 00:26:16
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
int a, b, c, max;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
a>b?(max=a, a=b, b=max):a;
b>c?(max=b, b=c, c=max):a;
a>b?(max=a, a=b, b=max):a;
cout<<a<<" "<<b<<" "<<c;
}
这是一个代码,您可以在其中输入 3 个随机数,然后将它们按顺序排列。但是,我不明白这部分:
a>b?(max=a, a=b, b=max):a;
b>c?(max=b, b=c, c=max):a;
a>b?(max=a, a=b, b=max):a;
它是如何工作的,为什么?
假设a = 6、b = 54 和c = 12。
a>b?(max=a, a=b, b=max):a;
b>c?(max=b, b=c, c=max):a;
a>b?(max=a, a=b, b=max):a;
程序本身可以正常工作。我只是不明白算法是如何工作的。
【问题讨论】:
-
这是怪诞的代码。最好忽略它。
-
"
a>b?(max=a, a=b, b=max):a;" 不,它根本没有做任何事情,因为 b > a..."然后是 54 =max”什么?如何为文字赋值? -
中心思想是
a>b?(max=a, a=b, b=max):a;如果a<=b什么都不做 -
嗯,它来自高中手册(甚至不是过时的)O.o 谢谢大家的回答!
标签: c++ numbers operator-keyword comma