請問C語言資深高手

時間 2022-07-12 09:45:02

1樓:

你定義的12.9f 格式超出了float變數的數值範圍小數位預設為6位小數而你卻設定為9

你如果用double定義a變數

scanf("%lf",&a);

printf("%lf",a);

就能正確輸出啦!

2樓:茄子閒人

我確定是超過float的長度範圍了

你應當定義雙精度的「double」

就如int 和long int的區別一樣

main()

float定義的數只能精確到小數點後六位,如果超過電腦就會隨機賦值……

就是這樣……

3樓:匿名使用者

這是正常的,浮點數儲存本來就是不絕對精確的。

這樣引出另外一個問題,就是浮點數的(是否相等)比較,不能像整數那樣。

比如說,先輸入 a = 0.1 再輸入 b = 0.1 比較 a 和 b 是否想等,應該這樣:

fabs(a - b) < 0.000001 這裡是比較兩數之差的絕對值,如果前面的式子成立,那麼 a 和 b 想等。

上面的 0.000001 不是絕對要用 0.000001 ,意思是,只要 是一個很小的數就行,一般就是取 小數點後 4 到 6 位 就行。

即 也可以是 0.0001、0.00001 等等都行,但是不能太小。

各位C語言高手請問

怎麼說那,你現在用的系統是c於c 的集合版本,c的程序導向是一個比較複雜而且很有意思的東西,只是更多的是考慮的問題方向不同,c也可以進行顯示程式設計,只是邏輯結果比較複雜呢,因為一個窗體的所得屬性,方法都要用函式之間的呼叫來實現,而且其中還要有io介面上的問題,記憶體的分配 堆和堆載如何分配 等等很...

c語言程式設計高手請進謝謝,C語言程式設計,高手請進,謝謝

根據樓上提供的進行優化,已經除錯成功的 去掉了註釋,考慮到各個機器的輸入法問題,所有的printf 內容都換成英文 include include include include define null 0 define len sizeof struct student define file d...

C語言高手進!!C語言,求指點!!

1是指這個變數只佔一位,看一下有關位段相關的地方。看一下這篇文章 位段以位為單位定義結構體 或共用體 中成員所佔儲存空間的長度。含有位段的結構體型別稱為位段結構。位段結構也是一種結構體型別,只不過其中含有以位為單位定義儲存長度的整數型別位段成員。採用位段結構既節省儲存空間,又可方便操作。位段結構中位...