C語言中printff n”,3 2結果為多少

2021-08-07 23:06:30 字數 832 閱讀 8659

1樓:吉祥二進位制

運算結果是0。

這是因為3/2是一個整型數常量表示式,整型數常量表示式有編譯器計算機執行的結果,3/2的商是1。這是編譯器計算出來的3/2這個常量表示式的值,但是printf()要輸出格式為%f,即輸出一個單精度浮點數。在c語言中浮點數使用的是ieee754編碼,也就是說一個32位的int型別的數1,使用ieee754編碼所表示的數值是多少的問題。

可以編寫如下**:

#include

int main()

執行結果與問題中的 printf("%f\n", 2/3)是一樣的,都為0。

要獲得正確的結果,應該對整型常量表示式進行強制型別轉換:

printf("%f\n", (float)(3/2));

2樓:

終於找到了,前面的一大段我就略去了,從這開始:

f 接受浮點或者雙精度值並將它轉換為十進位制符號表示法,格式為 [-] ddd.ddd。基數字符(在這裡顯示為十進位制點)後的數字位數等於規定的精度。

lc_numeric 語言環境編目確定在這個格式中使用的基數字符。如果不指定精度,則輸出六個數字。如果精度是 0(零),將不顯示基數字符。

恩,有點難理解,我的理解是這樣的:整型的精度無疑就是0,所以在轉換的時候直接就不顯示基數字符了。也就是說無論你給什麼樣的整型,你以浮點數輸出的話都會得到0.000000。

3樓:匿名使用者

%f 的意思就是我的結果是float型。1.500000

4樓:孤單的等待回憶

1.000000

這有個**轉換的!!

c語言中intabyfloatab那麼結果是什麼

首先是型別的強制轉換 a會被轉換成float 也就是單精度浮點型然後是不同型別混合計算。當float型和int型進行計算時,結果為float型。所以 如果a 3 b 2的話 那麼 float a b的值是1.5至於賦值給y 取決於y的型別。如果y為float或者double型,那麼y值就是計算結果。...

C語言中headnode是什麼,C語言中,頭指標head,和headnext分別是什麼

應該是個變數名,直譯過來是頭指標,一般用在連結串列裡 c語言。如圖。星號 跟在node後面和在head前面有什麼區別?這兩種寫法效果是一樣的,沒有區別 如同 定義一個指標變數,可以寫 int p int p int p 沒區別 都是代表結構體指標 c語言中,頭指標head,和head next分別是...

c語言中while的用法C語言中while的用法

c語言中while的用法解析如下 一 1表示true,在bool型別取值false和true,0為false,非0為true 例如 1和2都是true 程式中,這裡1就表示永真,直到迴圈體內遇到break。二 while用法演示解析 1 含義 while 迴圈會在指定條件為真時迴圈執行 塊。2 語法...