[C言語] Cパズルブック 1.5.3 関係演算子と条件演算子 加算代入演算子 +=

『Cパズルブック』(Alan R.Feuer, 1985)
[Mac M2 Pro 12CPU, MacOS Ventura 13.3.1, clang 14.0.3]

問1.5.3の解法は以下の通りです。

パズルなので楽しめていますが、実務でそのまま使うのは顰蹙ものでしょうか。せめて括弧で補足したいところです。

#include <stdio.h>
#define PRINT(int) printf("%d\n",int)

int main() {
    int x , y, z;

    x = 3; y = 3; z = 1;
    
    PRINT(z += x < y ? x++ : y++);
    PRINT(y); PRINT(z);

    // PRINT(z += (x < y ? x++ : y++));

    // 計算1: x < y
    //       3 < 3 は FALSE
    // 計算2: x < y ? x++ : y++
    //       FALSEはy++
    //       y++は評価時はまだ加算しないため3のまま
    // 計算3: z += Rt
    //       z = z + Rt = 1 + 3 = 4

    // 計算4: y
    //       y++評価後は1増えるので4になる
    // 計算5: z = 4
    
    // よって出力は4, 4, 4となる

    return 0;
}
4
4
4