这是问题https://www.urionlinejudge.com.br/judge/en/problems/view/1042 和代码
#include <iostream>
using namespace std;
int A,B,C
int main ()
{
cin >> A >> B >> C;
if (A > B > C)
cout <<C<<"\n"<<B<<"\n"<<A<<"\n\n";
else if (B > A > C)
cout <<C<<"\n"<<A<<"\n"<<B<<"\n\n";
else if (C > A > B)
cout <<B<<"\n"<<A<<"\n"<<C<<"\n\n";
else if (A > C > B)
cout <<B<<"\n"<<C<<"\n"<<A<<"\n\n";
else if (C > B > A)
cout <<A<<"\n"<<B<<"\n"<<C<<"\n\n";
else {
(B > C > A);
cout <<A<<"\n"<<C<<"\n"<<B<<"\n\n";}
cout <<A<<"\n"<<B<<"\n"<<C<<endl;
return 0;
}
答案 0 :(得分:3)
您的主要问题是if(A > B > C)
变为if (A > (B > C))
- 换句话说,您将A
与true
或false
结果进行比较B > C
,对于A
2
或更高的所有值,无论B
和C
的值如何,都是如此。
该修复方法是将A > B
与B > C
分开进行比较,因此请使用if (A > B && B > C)
或类似的构造。
答案 1 :(得分:2)
你必须改变:
之类的东西std::vector<Item>
进入:
(A > B > C)
答案 2 :(得分:1)
if语句中的条件是错误的。例如条件
if (A > B > C)
相当于
if ( ( A > B ) > C)
在这种情况下,条件(A> B)被评估为true
或false
,条件等同于
if ( true > C)
或
if ( false > C)
很明显,这不是你想要的。
因此必须重写原始条件
if (A > B && B > C )
但即使在这种情况下,程序也会出错,因为它不会考虑变量彼此相等的情况。所以有效条件看起来像
if (A >= B && B >= C )
程序将无法编译,因为至少在这里有一个拼写错误
int A,B,C
^^^
你忘了放一个分号
int A,B,C;
将变量A,B,C声明为全局
也没有意义int A,B,C;
int main ()
{
//...
最好将它们声明为函数main
的局部变量int main ()
{
int A, B, C;
//...
此代码段错误
else {
(B > C > A);
cout <<A<<"\n"<<C<<"\n"<<B<<"\n\n";}
cout <<A<<"\n"<<B<<"\n"<<C<<endl;
我认为你的意思是
else cout <<A<<"\n"<<C<<"\n"<<B<<endl;