次のプログラムに入力として 4 つの整数 (a = 10、b = 20、d = 30、e = 40 など) を指定すると、 と が計算さc = a + b = 0
れf = d + e = 70
ます。この異常な動作は、短い int に間違った書式指定子を使用しているためであることはわかっていますが、ここで正確に何が起こっているのでしょうか? 最後の 2 つの入力の合計が正しく、最初の 2 つの数値の合計が常に 0 になるのはなぜですか?
#include<stdio.h>
void main()
{
short int a, b, c, d, e, f;
scanf("%d%d%d%d", &a, &b, &e, &d);
c = a + b;
f = d + e;
printf("%d\n%d\n", c, f);
}