我的程序打印出与预期不同的结果

my program prints out a different result from what expected

所以每次我尝试输入 "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();
}

n++ 更改 n 的值。 None 你的其他表达方式。你得到 n+1 的事实很清楚地表明 n++ 在所有其他 "stuff" 输出之前被评估(因此 n 已经递增)。

您正在使用 n 并在同一个表达式中执行 n++(实际上递增 n)。这是undefined behavior