7 ではなく 1 を出力として取得するのはなぜですか ( a が最初に 12 に割り当てられている場合、 a-5 は 7 を返す必要があります) または 3 として ( a に 8 が割り当てられている場合、 a-5 は 3 を返す必要があります)。a に割り当てられた値に関係なく、出力は常に 1 のままです。
int main()
{
int a = 12;
if (a = 8 && (a = a - 5))
cout << a;
else
{
//do nothing !!
}
}