2017-04-12 11 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を取得したという事実は、他のすべての「stuff」が出力される前にn++が評価されていることを明確にしています(したがって、nは既にインクリメントされています)。

+0

ああ私はそれを得た。ありがとうございました –

0

nを使用していて、n++(実際にはnをインクリメント)を同じ式内で使用しています。これはundefined behaviorです。

関連する問題