2015-10-17 101 views
-14

我寫道:這個C++程序有什麼問題?我什麼都試過

#include <iostream> 

main()  
{ 
    std::cout << (8 > 7) << std::endl; 
    std::cout << (8/4 < 0) << std::endl; 
    std::cout << ('0' == 0) << std::endl; 
    std::cout << (0 < 10/5 <= 10) << std::endl; 
    std::cout << (5 < 6) && (5 < 1) << std::endl; 
} 

結果應該是:

True 
false 
false 
true 
true 

一切除了最後一個是正確的。我應該如何寫它?

p.s.我不知道爲什麼它沒有在節目的頂部顯示iostream,但我發誓我寫了它。

+3

你真的寫了'<'嗎?另外,'main()'需要一個'int'返回類型。 – juanchopanza

+0

不,我不需要一個int返回類型,這就是爲什麼我不知道如何去做。 – Francesca

+1

讓我改說一下。 'main()'必須有一個'int'返回類型。這是一條規則。所以,寫'int main()'。你實際上不必從函數中返回任何東西,因爲'main()'有一個隱式'return 0;'。 – juanchopanza

回答

4
std::cout << (5 < 6) && (5 < 1) << std::endl; 

但是上面的代碼不能編譯。寫這樣的 -

std::cout << ((5 < 6) && (5 < 1)) << std::endl; // result will be 0 

0是正確的,因爲&&操作會給1只有兩個操作數是1

5<6  // true   but 
5<1  // false 

因此,操作的最終結果是false和打印爲0

如果你想輸出爲true使用||運營商 -

std::cout << ((5 < 6) || (5 < 1)) << std::endl; 

- main應該有類型int

+0

問題是程序不能編譯,最後一行肯定有問題。我怎樣才能讓它成爲「真實」? – Francesca

+1

@Francesca在上一個語句中用breacket括起整個表達式來正確編譯它。我在回答中提到過。看一看。 – ameyCU

+1

@Francesca如果你想使用'||'運算符而不是'&&'將其輸出作爲'true'。 – ameyCU

-5

好的,我已經找到了解決方案,這是標準:: COUT < <(1> 5 < 6)< <的std :: ENDL;

謝謝大家!

+4

你描述這是一個解決方案? –

+2

'1> 5'是錯誤的,但是'1> 5 <6'是真的,因爲'false <6'是真的。如果這就是你真的想要的,那麼......但是如果你只是想在沒有任何有意義的推理的情況下使用'true',你就可以寫'std :: cout << true'。 – CygnusX1

+0

是的,因爲結果是正確的。也許你不明白我必須做什麼。 – Francesca