『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