2017-04-12 16 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입니다.