1樓:匿名使用者
都是同樣的錯誤, 'double *' to 'double'
假設這樣就是錯的,因為b是a的指標,而不是a的值
對照程式改一下吧,不懂的繼續追問
2樓:
if(b==a[(i+n)/2]) // b 是double型別,a[i] 會被隱式的轉換成double型別,
而,double 型別是不能直接用“==”比大小的。因為double型別或float型別都是有精度的,其實都是取的近似值,所以有個誤差。
if(b-a[(i+n)/2]<1e-8) // 只要相減的值在你規定的大小範圍內就可以認為是相等的。
c語言 int型別的可以和double型別的比較大小嗎?
3樓:小羊羊
c語言 int型別的可以和double型別的大小可以比較。
int a=2;
double b=1.1
//隱式轉換,相當於if( (double)a >b )if( a> b)
C語言中DOUBLE型資料儲存結果
釋夕楊歌 十進位制實數轉化為二進位制,往往不能用有限的位元數精確表示。double型規定了用幾位元作指數,幾位元代表精度 即有效數字 這對十進位制實數的儲存精度進一步加了限制。 朱禮祭君 老譚的書上有 實型資料一般佔4個位元組 32位 記憶體空間。按指數形式儲存。實數3.14159在記憶體中的存放形...
關於c語言浮點數問題,c語言關於浮點型資料範圍的問題
標準c語言支援的浮點數符合ieee格式,是二進位制浮點數,並不是一個位元組存放一個十進位制小數位的。關於ieee浮點數,可以參考這裡 至於這裡的輸出問題,如ls所說,是printf預設輸出問題。如果使用 f和 lf格式控制符輸出浮點數,預設輸出保留6位十進位制小數,自動四捨五入。用 nf可以控制輸出...
c語言,double型別的變數使用scanf 函式賦值後再
c語言中double輸入輸出,都用 lf 進行格式化,是否寫成了 f,這個是float型別。include int main 2.字元定義如下 字元 對應資料型別 含義 d i int 接受整數值並將它表示為有符號的十進位制整數,i是老式寫法 o unsigned int 無符號8進位制整數 不輸出...