2015-06-06 142 views
-11

這是問題https://www.urionlinejudge.com.br/judge/en/problems/view/1042 和代碼什麼錯誤++這段代碼在C

#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; 
} 
+2

你忘了問題... – marom

+0

會發生什麼事,什麼你希望發生的,爲什麼你覺得像你希望它發生不發生? – Jite

+0

問題是這個代碼在C++中出了什麼問題? –

回答

2

你必須trnasform的東西,如:

(A > B > C) 

到:

(A>B && B>C) 
3

您的主要問題是if(A > B > C)變成if (A > (B > C)) - 在其他窩RDS,你比較AB > Ctruefalse結果,這將是所有值true其中的2或更大A,無論BC的價值觀。

修復方法是將A > BB > C分開進行比較,因此請使用if (A > B && B > C)或某些類似的構造。

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() 
{ 
//... 

這是更好地把他們定義爲功能主要

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;