[C言語] Cパズルブック 2.3 その他の型変換

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

問2.3のコードと出力は以下の通りです。

ここで一旦Cパズルブックを使ったプログラミング学習を休止して、アプリ製作に戻ります。

#include "stdio.h"

#define PR(x) printf("x = %g\t", (double)x)
#define NL putchar('\n')
#define PRINT1(x1) PR(x1); NL
#define PRINT2(x1, x2) PR(x1); PRINT1(x2)

int main() {
    double d = 3.2, x;
    int i = 2, y;

    x = (y = d/i)*2; 
    PRINT2(x, y);
    // x = (y = (d/i))*2
    // x = (y = (int)1) *2
    // x = 1*2

    y = (x = d/i)*2; 
    PRINT2(x, y);
    // y = (x = (d/i))*2
    // y = (x = (double)1.6 *2
    // y = 3


    y = d * (x = 2.5/d);
    PRINT1(y);
    // y = d * (x = (2.5/3.2))
    // y = 3.2 * 2.5/3.2
    // y = 2

    x = d * (y = ((int)2.9 + 1.1)/d);
    PRINT2(x, y);
    // x = d * (y = ((int)2 + 1.1)/d);
    // x = d * (y = 3.1/3.2);
    // x = d * (y = 0);

    return 0;
}
x = 2	x = 1	
x = 1.6	x = 3	
x = 2	
x = 0	x = 0