2017-04-12 107 views
-1

因此,每次我嘗試放入「n」時,第一行都會輸出一個等於n + 1的數字。所以請幫助我我做錯了什麼!謝謝我的程序打印出預期結果不同的結果

#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 
#include "../../../std_lib_facilities.h" 
int main() 
{ 
cout << "Enter a number: "; 
double n; 
cin >> n; 
cout << "n: " << n 
    << "\n++n: " << ++n 
    << "\nThree times of n: " << n * 3 
    << "\nTwice n: " << n + n 
    << "\nHalf of n: " << n/2 
    << "\nSquare root of n " << sqrt(n); 
int m = n; 
cout << "\nInteger of n: " << m 
    << "\nRemainder when divide n by 2: " << m % 2 
    << "\nDivision when divide n by 2: \n" << m/2; 
keep_window_open(); 
} 
+0

++ n將n加1。鍵入(n + 1)而不是 –

回答

1

n++改變的n值。你的其他表情都沒有。這個事實,你得到n+1很明顯,n++被評估之前所有其他「東西」輸出(所以n已經增加)。

+0

哦,我明白了。謝謝 –

0

您正在使用nn++(實際上增量爲n)在同一表達式中。這是undefined behavior