C語言中以單精度浮點型輸入,輸出格式為d或c,為什麼顯示的數不對?謝謝

2021-05-04 18:25:50 字數 1672 閱讀 1908

1樓:岔路程式緣

肯定不對啊!

你輸入的時候是單精度浮點數型別,c語言中變數就是float型別,輸入使用的格式是%f。

不同的變數型別在記憶體中的儲存方式也完全不同,當你用整型格式(int)去讀乙個浮點格式(float)的數字時,不可能讀出正確的結果。

所以,你必須用跟輸入時相同的格式(%f)輸出(另外,還必須跟變數的型別一致),才能顯示正確的數字。

2樓:匿名使用者

單精度浮點型輸出格式應該是%f或者用double型別%lf都行啊。 %d是輸出整數, %c是輸出字元 怎麼可能會對啊。%s是字串。

3樓:韻

單精度浮點型%f,雙精度%lf,%d是輸出整數, %c是輸出字元 %s是字串

4樓:匿名使用者

輸入的什麼 你認為該輸出什麼

浮點數的儲存方式 跟1o進製不闖

5樓:

單精度浮點型float輸出格式應為%f,%d是整形,%c是字元型,能聽懂嗎?不懂的話隨時來問也是可以的

6樓:百i度網友

%d用於輸出整型變數,%c用於輸出字元型變數。c語言中,單精度浮點型變數和整型變數、字元型變數在記憶體中的存放格式是不一樣的。單精度浮點數是由乙個位元組的階碼和3個位元組的尾數構成的,共占用4個位元組記憶體單元,而整型變數在記憶體中占用2個位元組單元,字元型變數占用1個位元組記憶體單元。

將4位元組浮點數按2個位元組的整型數輸出,或按1位元組字元輸出,都會得到無法預料的結果。

c語言中輸出時一般是%d,但是有的是%4d,中間的數字是幹什麼的?

7樓:匿名使用者

c語言的格式字元(9種) (1)d(或i)格式符。用來輸出十進位制整數,有以下幾

種用法: ①%d,按整型資料的實際長度輸出。 ②%md,m為指定的輸出欄位的寬度。

如果資料的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。 ③%ld(%mld 也可),輸出長整型資料。 例如:

long a="123456"; printf("%ld",a);  ( 2)o格式符,以八進位制數形式輸出整數。格式:%o,%mo,%lo,%mlo都可。

(3)x(或x)格式符,以十六進製制數形式輸出整數。格式:%x,%mx,%lx,%mlx都可。

(4)u格式符,用來輸出unsigned型資料,即無符號數,以十進位制數形式輸出。格式:%u,%mu,%lu都可。

參見:li4-3.c/*無符號資料的輸出*/ (5)c格式符,用來輸出乙個字元。

格式:%c,%mc都可。 (6)s格式符,用來輸出乙個字串。

格式:%s,%ms,%-ms,%m.ns,%-m.

ns都可。 (7)f格式符,用來輸出實數(包括單、雙精度),以小數形式輸出。格式:

%f,%m.nf,%-m.nf都可。

注意:單精度實數的有效位數一般為7位,雙精度為16位。 (8)e(或e)格式符,以指數形式輸出實數。

格式:%e,%m.ne,%-m.

ne都可。 (9)g(或g)格式符,用來輸出實數,它根據數值的大小,自動選f格式或e格式(選擇輸出時佔寬度較小的一種)。

c語言中輸入輸出函式有幾種格式,C語言中輸入輸出函式有幾種格式?

c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char format...

C語言中,單精度型資料有效數字約是6 7位,數值範圍是約 3 4e 38 3 4e 38,怎麼得出來的求解

這個比較複雜,建議你找一下ieee754標準看一下。這個簡單說一下吧 在ieee754標準中進行了單精度浮點數 float 和雙精度數浮點數 double 的定義。float有32bit,double有64bit。它們的構成包括符號位 指數字和尾數字。這些位的構成如下 float 第31位 佔1bi...

c語言整型數賦值給浮點型的問題,c語言中將乙個浮點型賦值給整型時,會不會四捨五入?

b a 2 是這麼計算的 a是整型變數,2也是,因此計算被當成整型計算,得到整型結果0,然後發內現b是float型的,再將整容型結果0進行資料型別轉換賦值給b。因此應當將a 2算式中分子或分母轉換成float型就能正確計算了,比如 b float a 2 或b a 2.0 或b a b 2 c語言中...