c語言關于整數(shù)相除
有定義和語句:int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); 則 printf("%d %d %3.1f %3.1f",a,c,f,x); 的輸出結果若有定義和語句:double d; float f; long l; int i; i=f=l=d=20/3; 則 printf("%d %ld %f %f ", i,l,f,d);的輸出結果是(小數(shù)點后只寫一位)這兩個整數(shù)相除的部分是怎么計算的為什么第一個的f是1.5,,第二個的f是6.0不是6.7
第一個:
a=f/=c*=(x=6.5);
=號是從右往左運算
計算過程:
1,。x=6.5;
2。 c*=6.5; c=10*6.5=65;
3,。f/=65; f=100/65=1.5;//保留1位小數(shù)
4,。a=1.5=1; //取整數(shù)部分
第二個:
i=f=l=d=20/3;
1。 20/3=6,; //整形運算,,結果為整形,去掉小數(shù)部分的
2,。d=6=6.0; //1位小數(shù)
3。l=d=6.0=6; //取整
4,。f=l=6=6.0;//1位小數(shù)
5,。i=f=6.0=6;//取整
你要注意的是
若一個表達式內,全部整形,,則運算過程及結果只是整形
若有一個浮點,,就會浮點運算
簡單的如
1/2 結果就是0
而
1.0/2或1/2.0或1.0/2.0結果就是0.5了
相關推薦
便查問答是一款實用的網(wǎng)絡熱門知識問答平臺,,專注于分享你不知道的知識、經(jīng)驗及生活問題,,在這里所有人都能找到答案歡迎網(wǎng)友參與討論,。