printf("%.2f",x+a%3*(int)(x+y)%2/4);
運行結果是2.50
解釋如下:
a%3------1####整型
(int)(x+y)-----7####整型
a%3*(int)(x+y)----7####整型
a%3*(int)(x+y)%2-----1-----####整型
a%3*(int)(x+y)%2/4-------0####整型
####註意這裏因為被除數1和除數4是整數,所以會自動進行類型轉,因此是0,而不是0.25
####所以最後的結果是2.50,而不是2.75
妳可以試著運行下面的程序:
float x=2.5;
int a=1;
printf("%.2f",x+a/4);
printf("%.2f",x+1/4);
/*printf("%.2f",1/4);*/####這裏就會得不到結果
####類型轉換是非常重要的,但也特別容易忽略...