[C言語] Cパズルブック 1.5.1 関係演算子と条件演算子 三項演算子 x ? y : z

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

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

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

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

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

    PRINT((x < y) ? y : x);

    // x += (y += z)
    // 計算1: y += z
    //       y = y + z = 2
    // 計算2: x += (y += z)
    //       x = x + Rt = 1 + 2 = 3      

    // (x < y) ? y : x
    // 計算3: x < y
    //       3 < 2 は FALSE
    // 計算4: (x < y) ? y : x
    //       FALSEはx
    
    // よって出力は3となる

    return 0;
}
3
3