出力は何ですか?
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なります。floatfloat
float のデフォルトの精度は 6 であるため、10 進数の 6 桁の次%d=i/a=2 /4=0.500000に next が表示されますが、%dフォーマット文字列は整数のみを出力するため、0 が出力され、10 進数値の後に破棄されます。
Next printfwith %d=i/a=2/4print 0 のコンセプトは同じです。しかし、%f=i/a=2/4=0.000000最後の結果はわかりませんでした。