1樓:
1.0/2*(a+b+c),
上式中的分子1.0並不是精確到小點後一位,而是告訴編譯器此處是浮點運算,而不是整數運算。
如上式如果變成1/2*(a+b+c),那麼首先在計算1/2時,編譯器將之看成是整數運算,這時,結果不是0.5,而是0,所以1/2*(a+b+c)的結果為0
至於-b/(2*a),其結果要看b和a兩個變數的型別,如果b是浮點型(float或者double)其結果就是帶小數的,如果a,b都是整型數,那麼結果就只能是這個式子所求出結果的整數部分。
2樓:匿名使用者
c語言中的除法:
c = a/b;如果a,b都是int型,那麼c就取整,捨去小數,比如:c = 6/3 ,那麼c=2;而 c=1/4則c=0。因為多數機器採用的是「向零取整」。
即 c = -5/3 ,c= -1. 正負數都是向零靠攏的。
c = a/b;如果a,b中至少有一個是實數型,那麼c就精確取值。
至於什麼時候該精確的問題,得看具體的演算法需求。也可以使用強制型別轉換來滿足演算法需求。
3樓:技術螞蟻
只要式子中有一個是double型別的,就會精確。比如1.0/2*(a+b+c),裡面的1.0是double,所以會精確。又如-b/(2*a),裡面所有的都是int所以不會精確
4樓:試倩悲風催淚
這個沒有嚴格的要求吧,主要是根據個人需求而定,可以用輸出格式控制符來控制,如%3.2f ,就表示輸出列寬為3精確到小數點後兩位,有的書小數點也算一位。
編寫程式,求一元二次方程ax2+bx+c=0的根(保留2位小數)。係數a、b、c為浮點數,其值在執行時由鍵盤輸入
c語言中要寫表示s=(a+b+c)/2,為什麼要寫成s=1.0/2*(a+b+c);而不寫成s=(a+b+c)/2;呢?
5樓:匿名使用者
s=(a+b+c)/2
是整數操作
例如:1/2結果是0,3/2結果是1。
s=1.0/2*(a+b+c)
為浮點數操作
1.0/2結果是0.5。
c語言問題 在計算三角形面積時s=1.0/2*(a+b+c)中 為什麼非要用1.0 而用1得不出結果
6樓:匿名使用者
看看書就知道了,c語言中1/2是等於 0 的,而不是等於0.5
而且這個上課你們老師是應該強調的,c語言中int型的數相除是不會出現浮點數的
7樓:匿名使用者
因為定義的時候,數字型別用的是float型別而不是int型別,int型別是指整數,float型別是指浮點數(就是有小數點的)
8樓:匿名使用者
若啊,a,b,c都是整型的話,用一除就得出s是一個整型數,這與答案誤差太大,只有用1.0才能得出浮點數型
在c語言中(1/2)*(a+b)*h和 (a+b)*h*(1/2)為什麼結果不一樣?第一個結果是0,第二個就不是.
9樓:窗邊消失的糖
你是來不是a,b取的都是整形(int型別)?這自是(1/2)*(a+b)*h中先算(1/2)*(a+b)。如果這個數小於0.
5就會自動四捨五入變為零。所以再乘h還是零。而後面一種先算(a+b)*h再除以二。
所以不為零
10樓:匿名使用者
結果是一樣的。
因為 (1/2)=0,一個式子不論是先乘 0 還是後乘 0都一個結果。
我剛才用 vc2003執行後驗證,結果一樣。
你的**是什麼?能不能發給我學一下?
11樓:匿名使用者
完整的**才好說,c語言如果無運算子的優先順序式子是從左向右算,變數為整型,則只存整數位,小數位去掉,9.9則為9。
12樓:曾經風情
a,b,h是哪個型別的?整型?
問大家一道c語言題,若表示式(a+b)>c * 2 && b !=5 || !(1/2)中,a b 20
13樓:匿名使用者
||||
(a+b)>c * 2 && b !=5 || !(1/2)=(3+4)>2 * 2 && b !=5 || !(1/2)
根據運算優先順序完成以下步驟運算:
(3+4)>2 * 2 && 4 !=5 || !(1/2)
=7>2 * 2 && 4 !=5 || !0
=7>2 * 2 && 4 !=5 || 1
=7>4&& 4 !=5 || 1
=1&& 4 !=5 || 1
=1&& 1 || 1
=1 || 1=1
14樓:匿名使用者
|有||有短路規則,左邊的為真就不會進行右邊的判斷了,所以cad在c語言中沒見過,c選項後邊應該是指標(&a就是指標型別了)應該選d吧!我的機器上是這樣的。要麼你程式沒有寫完。
「(a=4*5,a*2)」,a+6"你是原表示式嗎,怎麼中間有一個」。因為巨集之後是這樣的:n=(n*n+(n+1)*(n+1))-2;這也是巨集不同於函式的點a=++a+++b;a=1+1=2;b進行的++等於1;c沒變為0。
第二個a=1+(-1)=0;b進行了--為0,c進行了--為-1;對於表示式前置後置的++--操作都要表現出來
在c語言中int a=2,b=3,c=6,m; (a=c
15樓:匿名使用者
(a=c
(a&&!c)的值為0。很簡單
b/a*2.0的值為6.
所以總體是6.
個人見解,沒有跑程式驗證
16樓:
你確定你對這兩個左值賦值沒問題?
a&&!c=0;
b/a*2.0=2;
c語言中有無符號型別的輸出問題,C語言中有無符號型別的輸出問題
太陽雨 因為short和int型佔的位元組數不一樣,一般來說,int佔四個位元組,short佔兩個位元組 不同的系統分配的位元組數不一樣 他們是以二進位制數存放在記憶體中的。你把 1賦給short型的a,輸出的時候,只取了後面的兩個位元組的內容,那個負號在前兩個位元組中。你把 1賦給int型的a時,...
C語言中關於“有效數字”的問題,在c語言中,有效數字和有效數位怎麼解釋?
當你輸入2.2e2時a 4.84,而輸入2.2e 2時a 0.20661157024793388429752066115702.它們的是float型,放在記憶體中是 2.2e2 01000011 0,1011100 00000000 00000000,2.2e 2 00111100 1,010010...
C語言中的問題,幾個C語言中的問題???
將憶梅僑寶 getchar和putchar是c語言中的函式 getchar從鍵盤讀入字元 putchar在螢幕上顯示字元 吳幼珊佘溶 getchar和putchar是c語言中的函式,叫作標準字元輸入輸出函式,這裡的標準表示輸入是從標準裝置輸入的,即鍵盤,輸出是從標準裝置輸出的,即顯示器。這兩個函式包...