出力は何ですか?
main()
{
float a=4;
int i=2;
printf("%f %d",i/a,i/a);
printf("%d %f",i/a,i/a);
}
私が受け取っている答えは次のとおりです。0.500000 00 0.000000
理由: 最初のprintf
では %f=i/a=2/4=int/float
、暗黙のキャストが行われ、結果が a (つまり 0.500000)にi
なります。float
float
float のデフォルトの精度は 6 であるため、10 進数の 6 桁の次%d=i/a=2 /4=0.500000
に next が表示されますが、%d
フォーマット文字列は整数のみを出力するため、0 が出力され、10 進数値の後に破棄されます。
Next printf
with %d=i/a=2/4
print 0 のコンセプトは同じです。しかし、%f=i/a=2/4=0.000000
最後の結果はわかりませんでした。