C 中定義float a a 2 3但輸出結果為0 a 3 2,輸出結果為1 為什麼哇

2021-04-28 17:39:56 字數 1545 閱讀 1870

1樓:匿名使用者

當然了。

2/3是整型運算,結

果為整型,結果為0,將0賦給變數a,a=0同樣道理,3/2是整型運算,結果內為容整型,結果為1,將1賦給變數a,a=1

並不是定義a為float型,就能影響到等式右邊的計算,等式右邊還是整型運算。

要想得到a的實際值,可用a=2.0/3;或a=2/3.0或a=2*1.0/3,就是等式右邊要引入浮點型進行計算。

2樓:匿名使用者

2/3是個整數表示式。你可以寫成2.0/3,2.0/3.0,2/3.0,(float)2/3或者float a=2; a /= 3

都可以。

3樓:dn_海倫泰勒

在c++中輸出小數要定義精度

幫幫忙,為什麼選b?設有定義:float a=2,b=4,h=3;,以下c語言表示式與代數式計算結果不相符的是( )

4樓:匿名使用者

因為整型之間的運算還得整形,整形與實型運算就是實型,你一題去往下算,acd都得整型,只有b項(1/2)得0,結果是0,因為整型運算得整型,算術結果是9。

5樓:匿名使用者

/是整除符號 是不看餘數的 1/2=0

6樓:匿名使用者

因為你已經定bai義了a,dub,h為單精度浮點型,所以zhi,就要考慮到

dao精度問題了。專

下面幾個選項中,屬根據運算優先順序,就b選項中,是先算1/2(因為c++中,你的常數要有小數部分才是浮點型,你可以驗證下:

int main()

輸出的結果是0)

也就是說,1/2是整型運算,你的代數式計算是0.5,但整型的精度限制,結果只能是0;如果b選項改為(1.0/2)*(a+b)*或者(1/2.

0)*(a+b)*h都能得到正確的結果。

c++中,a++、a+=1、a=a+1、++a 有什麼區別?

7樓:燕清揚

例如a=2;

a++;輸出結果為2;但是記憶體中它的值自加1了。(先輸出a再運算)例如a=2;

++a;輸出結果為3;記憶體中也是3.(先運算a再輸出值)。

例如a=2;

a+=1;意思等同於a=a+1;

8樓:天才兔之

a++表示在一個語句

中,也就是在分號結束時先不加1,直接代入a的值計算,之後在進行版下一條權語句計算時,a的值變成了a+1.

a+=1表示a=a+1,也就是把a+1的值賦給a。

++a表示在一條語句中,先讓a的值加上1,在參與計算。

9樓:

cout<

cout<

cout<

cout<

你會知道區別的

10樓:曉呈呈

a++ 先取值再自加

++a 先自加再取值

a+=1 等同 a=a+1

c中怎麼定義字串陣列,C中怎麼定義字串陣列

方法一 string abc new string 3 abc 0 1 abc 1 2 abc 2 3 方法二 string abc new string 最笨的方法 string abc new string 4 abc 0 aaa abc 1 bbb abc 2 ccc abc 3 ddd st...

c 中呼叫自定義函式的問題

被調函式,是有返回值 的,如果需要用到返回值,比如輸出 int fun std cout fun 如果你只是想輸專出那句話,那麼呼叫屬時直接fun 還有,你說的這個print 函式名,這個不然是偽 不然這個也是個函式名,表示輸出的意思 不是固定的,只是讓人容易辨識 c語言的話 如果函式名後面加了 就...

Cextern宣告和定義問題,c 中的extern修飾符在變數的 宣告和定義方面有什麼作用

我剛才做了一個實驗 a.cpp include std string i b.cpp include include extern std string i int main 執行結果為 上面是一空行 由於末尾用了endl 如果沒有a.cpp這個檔案,執行出錯 這是一對實驗 有沒有a.cpp檔案 可...