这个代码在c ++中出了什么问题

时间:2015-06-06 14:26:15

标签: c++

这是问题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;
 }

3 个答案:

答案 0 :(得分:3)

您的主要问题是if(A > B > C)变为if (A > (B > C)) - 换句话说,您将Atruefalse结果进行比较B > C,对于A 2或更高的所有值,无论BC的值如何,都是如此。

该修复方法是将A > BB > 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)被评估为truefalse,条件等同于

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;
相关问题