在C 中,為什麼1 0 2 0 5,而1 2 0呢

2021-03-11 10:09:41 字數 4910 閱讀 6897

1樓:匿名使用者

1.0/2表示式中

bai的1.0在c++中預設是浮點型,所du以zhi結果是dao0.5。而1/2表示式都是整型回

的,所以結果是整型的。浮點方式就是答小數點是可以移動的,位置不確定的,而整型int則不是。那為什麼在c++中實型變數在記憶體中的儲存方式為浮點方式,就是實際應用的需要了,不可能什麼資料都是整型。

2樓:匿名使用者

1.0時,編譯器會當成浮點數,所以會有小數。

1\2的話,編譯器是當成整數來處理的,直接把小數部分捨去了。所以就是0

3樓:

你的反斜桿錯了。應該是1.0/2.

如果你將結果定義double a=1.0/2,那麼它的結果就會是0.5,1/2就會是0因為1後面沒有帶小數。

如果你是int a=1.0/2的話,一樣都會是0。

4樓:匿名使用者

首先你的「/」搞反了,然後什麼是浮點方式呢!簡單的說會在小數點後取值,呵呵你暫且這麼理解吧!而相對應的就是整形量啦!整形量就是整數啦,要捨棄小數點後的數

5樓:匿名使用者

1.0/2 是浮點運算, 所以結果為0.5

1/2是整型運算,結果向下取整,結果為0

c++裡 pow(4,1/2)得到的結果是1.而pow(4,1.0/2.0)結果是2.這是為什麼呀?

6樓:匿名使用者

1/2 是整型除以整形,所以結果為0,即

pow(4, 1/2) = pow(4, 0) = 1.

1.0/2.0則是浮點除以浮點,結果是浮點0.5.

7樓:匿名使用者

1/2 是整形的 除 結果 是0 , 1.0/2.0是浮點除 ,結果是0.5

8樓:匿名使用者

#include

void main()

cout<

9樓:匿名使用者

{ double result; result=1-1.0/2 1.0/3-1.0/4 pow(-1,n)*1.0/n; printf(

c語言中1除以2為什麼等於0

10樓:天雲一號

因為1預設的是int型的常量,所以1/2的輸出結果為了與被除數一致就輸出0(0.5進行int型別轉換後就變成了0)

這裡需要注意的就是c語言除法中,結果的資料型別是會轉換成被除數的資料型別的。

比如:int a = 4;

int b = 3;

float d = 5;

int c = a/b;    // 變數c的結果就是1,本來4/3=1.333(為了與被除數a的型別一致,所以取了整數部分,捨去小數部分)

float e = d/a;   // e的值就是1.25,因為d是float型別的

11樓:blue丶小

c語言中'/'除法,當兩邊都是int型數時,做整除運算,1/2=0

如果兩邊至少有乙個為float或者double,那麼將做一般的除法,1.0/2=0.5

12樓:眷戀陽光

1除2得到的本應該是0.5 ,但是由於除數和被除數都為int 型別,則.5部分就被省去,只剩下前面的0了。試試將1 2作為float型別的變數,再做除法,看看結果~

13樓:李卿麒

你問的是1/2 ,還是1%2?

如果是1/2 ,是0,因為1和2都是整形常量,c語言預設結果為整形值,所以是0.5取整為0,c語言的取整和數學上的不一樣,無論小數部分是多少都是捨棄。

如果是1%2,也是0。因為%是取餘運算子。1除以2的餘數,也是0.

14樓:匿名使用者

int是整型,沒有小數的,把變數定義成float型就行了

15樓:餘鎮崗

因為,1是整形,2也是整形,所以除出來,必定要是整形(c語言裡的要求),其實結果是0.5,但0.5轉為整形的時候就是0,所以為0 ,如果你是1.

0/2.0,那就應該會不一樣啦~~ 應為1.0,2.

0 都不再是整形,額,c好久沒接觸了,嘎嘎

16樓:匿名使用者

如果你定義的1和2都是整型,那麼1/2是零,意思是取整 1%2是取餘

17樓:匿名使用者

因為c語言中 1/2 1和2都是整形資料 進行/運算 得到的結果也是整形的

如果寫成1.0/2或1/2.0或1.0/2.0 得到的結果就不是0了

18樓:匿名使用者

你想等於多少?0.5嗎?那麼整形除以整形成了浮點型,對麼??

19樓:隨心鳥人

c語言中除的時候,只取其整數部分,1除以2整數部分為0,所以取0,取餘的時候結果為1……

20樓:反派大頭目丶

什麼滿意答案 誤人子弟啊 1%2等於0!!!你c語言體育老師教的吧。。。

21樓:匿名使用者

整形除以整形結果是整型,所以就是0

22樓:匿名使用者

整型數想除,結果取整。

23樓:匿名使用者

因為1 和2 都是整數 結果也是整數!你可以「1.0/2」試試!

24樓:龍歌之湖心小島

1除以2得0.5, 在c語言中取小數點前面的數

25樓:站在街角等你回

int型相除取整數啊

c++中定義float a;a=2/3;但輸出結果為0.a=3/2,輸出結果為1.為什麼哇??

26樓:匿名使用者

當然了。

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,就是等式右邊要引入浮點型進行計算。

27樓:匿名使用者

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

都可以。

28樓:dn_海倫泰勒

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

c語言中1和1.0在以下程式中的區別是什麼?

29樓:匿名使用者

1、如果是1,那就是整數,整數除法1/2結果也會是整數,數學中答案是0.5,但是整型的不能儲存0,5.因此會直接變成0.後面的計算結果是什麼就不重要了。

2、如果是1.0那麼就表示這個數是float型別,float與int運算,結果會變成float的方式儲存。1.0/2就是0.5.這樣才能得到正確結果。

30樓:安徽新華電腦專修學院

計算機內的所有資料都是二進位制,就是0和1;

用01程式設計是最原始的機器語言,是可以實現的 ,當然,編出來乙個計算1+1的程式還行,計算個方程什麼的就不太可能了。機器語言發展為組合語言,後出現高階語言。現在程式設計都是用的高階語言。

像c語言,c++等。

31樓:榮

前面的同學回答的很好

32樓:匿名使用者

1.0/2 結果是 double 0.5

1/2 結果是int 0

main() { int a=2,b=-1,c=2; if(a

33樓:匿名使用者

else關鍵字總是與它前面最接近的乙個if組成一對在這題中else語句與if(b<0) c=0組成一對它們這個整體同屬於上乙個if(a

因為a=2,b=-1,不能進入if(a

執行printf("%d\n",c)

這個時候c未做任何改變,

所以值為2

34樓:匿名使用者

這樣寫你看的更清楚:

main()

{int a=2,b=-1;c=2;

if(a原則,是第二if不成立時的選項。

而執行時,第乙個if不成立,所以後面就不執行,直接執行printf語句,輸出2.

35樓:傾聽的你

void main() {

int a=2,b=-1,c=2;

if (a意思是如果a且b<0,才執行c=0。題意不滿足,所以不執行,else於離著它最近的if配對,所以這個程式時乙個大的if裡面巢狀乙個if—else語句。

所以當a

36樓:匿名使用者

#pragma hdrstop

#include

#include

#pragma argsused

main()

若想他等於3,則

main()

//****************

else c++;

printf("%d\n",c);

system("pause");}

37樓:匿名使用者

if(a

在沒有加大括號的情況下else會自動與最近的if匹配。

c中為什麼要盡可能使用0而不是

來自網上,僅供學習交流。首先呢,要明白一點兒,null是乙個無型別的東西,而且是乙個巨集。而巨集這個東西,從c 誕生開始,就是c 之父嗤之以鼻的東西,他推崇盡量避免巨集。而在他的faq中,也有相應的乙個關於null與0的解釋,也談到了這一點兒。stroustrup c style and techn...

在c中是什麼意思在C中是什麼意思

表示作用域,和所屬關係。比如乙個a類 存在乙個函式test是屬於a的,如下 關於 的具體解析 是運算子中等級最高的,它分為三種 1 global scope 全域性作用域符 用法 name 2 class scope 類作用域符 用法 class name 3 namespace scope 命名空...

c是什麼意思,在c 中 什麼意思

就是模運算,就是取餘 餘數 就是除號,int整數運算,就是取整數 四捨五入 物件導向就是所有的操作都是基於物件的,所關注的是物件,我想知道textbox裡的內容 這個操作,直接找textbox物件的text屬性就可以了。敢問你對物件這個概念有怎樣的理解,物件導向的重點是物件,而不是面向,如果你想知道...