C語言,如果我要把整數和浮點數一起定義,要怎麼做呢

時間 2021-08-30 09:17:13

1樓:匿名使用者

先定義一個結構體,其中有float變數和bool變數,如果是純c,你可以用整形的0、1來取代bool變數作為判斷是否是整形的引數,然後用此結構體定義陣列,初始化的時候,如果數值為整形,則bool變數賦值為true或者是整形引數賦值為1(注意這裡的整形變數是你判斷的引數,不是給你用來存數值的),也可以反過來賦值為false或者0;如果是浮點型數值,則將bool變數或者你的整形變數賦值為和存整形數值時相反的標識(即存整形數值時,如果bool變數為true(false),則存浮點型數值時bool變數為false(true),整形引數的賦值同理)。在讀取數值時候,通過bool變數或者你的整形引數0、1來區別整形和浮點型,做個判斷,然後做個型別轉換。

這個應該是很容易的問題,多動動腦子,辦法總是會有的。

2樓:曾哥is史泰龍

struct s

;不知道說的是不是這個意思 一個變數一個時間只能有一種型別 除非進行型別轉換。。

c語言中將一個浮點型賦值給整型時,會不會四捨五入?

3樓:幻翼高達

c語言中將一個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也可以認為是執行了下取整運算。

將浮點數(單雙精度)轉換為整數時,將捨棄浮點數的小數部分, 只保留整數部分。將整型值賦給浮點型變數,數值不變,只將形式改為浮點形式, 即小數點後帶若干個0。注意:

賦值時的型別轉換實際上是強制的。

例如執行賦值後,無論5.4還是5.6都會變成5。

4樓:_夢幻陽光

不會的,不過可以寫一個函式自己轉換啊

#include

int fun(float x)

int main()

列印的為3和4,c語言很靈活的,樓主想要什麼幾乎都能實現

5樓:匿名使用者

不會的,如int x; 如果有 x=4.78; 則x的值是4

6樓:匿名使用者

不會,後面的小數就直接沒了,只有整數部分了

採納我哦

7樓:匿名使用者

不會的啦,整型的話,1/2=0,而不是0.5或者1,但整型變成浮點型要強制型別轉換,不知這麼解釋明白不。?

8樓:龍__鳳

不會的,看程式的執行結果:

9樓:路過

你好,不會的。浮點型資料賦給整型時,浮點型就會被自動轉換成整型,整型只是整數部分。

希望能夠幫到你。

10樓:匿名使用者

不會,一般是給你強轉成整形了,小數位就沒了,四捨五入是不存在的

11樓:匿名使用者

不會,只會把整數部分賦給整型變數

12樓:匿名使用者

不會,比如float a=4.45 那麼 printf("%d",a);輸入為4,直接把小數點後面的數刪去,不是四捨五入

關於c語言浮點數問題,c語言關於浮點型資料範圍的問題

標準c語言支援的浮點數符合ieee格式,是二進位制浮點數,並不是一個位元組存放一個十進位制小數位的。關於ieee浮點數,可以參考這裡 至於這裡的輸出問題,如ls所說,是printf預設輸出問題。如果使用 f和 lf格式控制符輸出浮點數,預設輸出保留6位十進位制小數,自動四捨五入。用 nf可以控制輸出...

C語言中怎樣判斷輸入的是整數還是浮點數

scanf s,str 先存成字串if null strchr str,等於null是沒有找到小數點else sscanf str,lf,b 再從字串格式化成浮點型例如 inti floatf doubled 輸入i是整數,輸入f是float型,輸入d是double型 2 看輸入格式scanf d ...

c語言 節(16進位制)轉換成浮點數的問題

金色潛鳥 指標b,指向a的首地址。怎麼算出來的 從感測器傳過來的cd cc cc 41,小端碼的話,四個位元組內容 變化 為 0x41cccccd 轉 float 為 25.6。你可以 自己 用 聯合體 研究 union uuu main 與子如初見 1.定義一個字元指標b,指向變數a的地址。由於型...