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

時間 2021-08-11 17:32:25

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語言中怎麼表示,C語言中 怎表達?

四舍 入 標準的c語言中沒有 這個符號及常量,一般在開發過程中是通過開發人員自己定義這個常量的,最常見的方式是使用巨集定義 define pi 3.141592 也可以直接普通變數定義,如 double pi 3.141592 可以負責任的告訴你,c99標準裡沒提這事,但大部分實現裡 vs和gcc ...

C語言中if和switch區別,C語言中if else語句與switch語句的區別在哪裡?

風若遠去何人留 switch語句,可讀性更好,整體流程看起來清晰明確。if語句適應性更強,可以處理更多的情況。所有的switch語句都可以寫成if的形式,比如switch a 可以寫作 if a b case b else if a c case celse default.但是switch 語句,...

C語言中return的含義,C語言中Return 0是什麼作用

及羽揚俊 在函式返回型別為void時,即不需要返回任何值,要想結束函式就用 return 它表示函式執行到這一句時終止函式 return 表示結束當前函式並返回值,如果沒定義,則返回 null 如 return 1 表示返回1 return 表示返回 null 這裡我給你一個簡單的c程式的例子。in...