1樓:匿名使用者
計算機中的數值計算根據資料型別有不同的計算處理,a、b、c是3個整型變數,只能儲存整數,如果按數學意義進行平均值計算,得到的結果可能是帶小數的浮點數(c語言中叫實型)。
c語言中的表示式a+b+c,和值為整型值,如果直接除3(整型常量)則按整型資料進行計算,所得結果也為整型,會把小數部分自動捨棄。
如果希望得到數學意義上的平均數,則要除實型常量),c語言在計算時會把a+b+c的和值(整型值)按隱式型別轉換規則自動轉換為實型資料,然後和實型常量)進行相除,最後可以得到一個實型的商(double型)。
2樓:匿名使用者
樓上的都正解。
chenhaohbu的答案更詳細完美!
3樓:匿名使用者
因為在c中/預設的是整除。
例如5/2應為2,若為5/則為。
4樓:網友
若「/」這個符號兩邊是整數,即int型,在c語言中是整除的意思。c語言中數與數之間進行運算,由於數與數之間的型別不同會進行型別轉換,若3變成,則3.
0為double型,a+b+c的結果和運算也轉為double型,那麼結果為小數,若與3相除結果為整數。1+2+3/4=1;1+2+3/4.
x%10是取x除以10的餘數,所以得到的事x的末尾數。
c語言a+=b++==0表示什麼意思
5樓:匿名使用者
首先,b++表示對b做自加運算,我們用c代替,c=b++;
然後,a+=b++ 等於 a+=c,即a=a+c,也就是說「==之前部分是給a賦值的,我們用d代替,即d=a+c;
最後是一個邏輯判斷d==0,也就是判斷前面計算出來的a是否等於0.
這裡要注意的一個地方是b++,不是++b,也就是說在當前這一次判斷的時候b並不自加,而是在當前判斷執行完之後才自加1.
比如初始a=1, b=2,b沒有自加,a=a+b=1+2=3,那麼這句話這次是在判斷「3==0」,下次再判斷的時候b才自加變成了2,a=a+b=3+2=5,相當於在判斷「5==0」,依次類推即可。
6樓:匿名使用者
符號的優先順序是:
在這個算式中是++最高。
++是2級,其次==是7級(先左後右),最後是+=是14級這裡單指加了以後的賦值(先右後左)
然後關於==我做了個小驗證,#include
int main(void)
結果是a為0,b為3。說明在用==(等於)的時候不像=(賦值)完全改變了賦值物件的值只是單次的改變一次物件的值。
例如你的a=1,b=2
計算順序是先b做自加1操作這時b才變為3,然後做b==0,如上的小驗證,做了這個運算後不會改變b的值(這是b裡面的值還是3)只是在參加運算的時候b單次變為0,,然後做a+=b(這裡的b為0)故這時候a還為1。所以執行這個語句以後a=1,b=3。
以上只是自己個人的觀點,不一定對但還是希望能幫到你。
參考資料:字元優先順序表)
7樓:中械
其實是a=a+b++=0的簡寫;從運算子的優先順序可知:++最高,+次之,==再次之,而=最低,即先進行b++運算,在進行a+(b++)運算,其次進行a+(b++)0運算,最總吧a+(b++)0的結果賦給a。這個可以程式設計應正。
char a[3]={'a','b','c'}; 不是只可以存放2個字元 另一個是\0嗎
8樓:金色潛鳥
char a[3] 是宣告 a 是 char 型陣列,有3個元素。
char 型陣列 可以用來存放一個字串,也可以用來存放1個1個的字元。
char a[3]=;存放3個字元, 可以。
char a[3]="abc"; 存放字串,字串有4個位元組,含結束符\0. 這樣初始化,結束符沒地方放,丟棄了。
char a[3]="ab"; 存放字串,字串有3個位元組,含結束符\0. (提倡用法)。
char a[4]="abc"; char a="abc"; 提倡用法)。
#include
int main();
printf("%c %c %c",a[0],a[1],a[2]);按字元 方式輸出。
printf("%s",a); 按字串方式輸出。
return 0;}
#include int main()
ms vc++ 輸出都是:
a b cabc
9樓:匿名使用者
確實是只可以存放2個字元,最後一個是零。你說的沒有錯呀=。=字元陣列最後一項一定要是內'\0'
你這麼寫會報錯。容error c2078: error c2078: too many initializers就是初始值設定太多。
3,表示的是三個字元。
10樓:焚香一隻鬼
不 你理解復。
有點 問題 當 儲存的是制 字串 的時候bai才會自動 在後面加du上 \0
而字串zhi的標誌是 "
除此之外 都當dao做 儲存 單個 字元 處理就和 整型 陣列一個道理了。。。
3 是 三個 字元。
11樓:會唱歌的小鷓鴣
c語言中一個字元就是一個位元組 你這樣寫可以 有什麼疑問??
int a=2,b=3,c=4,d; d=++a+b+++c++; j**a中輸出是10,請問為什麼啊
12樓:網友
1、b+++c 預設情況下 執**況是從左到右(b++)c
2、b++ 是在運算完之後才會+1,並不會把+1後的值帶入表示式中計算。
13樓:網友
d=3+3+4=10
++a表示先自增1然後參與運算。
a++表示運算後再自增1
14樓:網友
++在後面,先取值再自加。++在前面,先自加,再取自加之後的值。
變數的值 和 計算之後的值要分開來看的。
此處:從後向前計算。
表示式這麼寫:d=(+a)+(b++)c++)
=> d = a)+(b++)4 【 此時: c = 5】
=> d = a)+3+4 =>2)+7 【 此時:b = 4,c=5】
=> d = 3+7 = 10 【 此時:a = 3;b = 4,c=5】
15樓:匿名使用者
一個稀奇古怪的題目 只有國人才會考這種語法++a :先加+
a++:先用a,後加1
結果就是 3+3+4
16樓:匿名使用者
根據運算子優先順序可將等式看做(++a)+(b++)c++)3+3+4=10
17樓:吃魚的鴿子
3+3+4 = 10
++a 是先讓a自加後計算 b++ c++ 都是先計算後自加。
計算完成後 abc都分別+1了。
18樓:匿名使用者
++a 是先運算後使用 ++a=a+1=3
b++是先運算後使用 b++=b=3
c++同a++
excel中abcd在一列,b=a*0.3,c=(a+b)*0.2,d=a+b+c,d用自動求和後為什麼還是c的值
19樓:匿名使用者
不會啊,我試驗了幾次都成功的運算了,你肯定有輸入錯誤的地方。
20樓:網友
你檢視一下d中的公式,就應該能看出問題所在了。
檢視公式的方法:ctrl+~ 注: ~為1左邊的符號)。
有形如:ax3+bx2+cx+d=0這樣的一個一元三次方程。給出改方程中各項的係數(a,b,c,d 均為實數),
21樓:
我來解釋一下樓上的吧!
首先,對f(x)=ax3+bx2+cx+d求導(別告訴我說你沒學過高數哦),得f'(x)=3ax2+2bx+c。
然後解方程f'(x)=0,得到兩個實根x1、x2,也就是f(x)的極值點。f(x)=0的3個根應在區間[-100,x1]、[x1,x2]、[x2,100]中。
用二分法,即可求出f(x)=0的3個根。
22樓:匿名使用者
找到求解公式,剩下的就是一個表示式問題。
23樓:網友
解一元三次方程有通解的,到baidu找找。
float a=2,b=4,h=3; (1/2)*(a+b)*h在c語言中結果為什麼是0
24樓:匿名使用者
你能不能把。
1/2改下。
(1/2)*(a+b)*h ;
改成(1f/2f)*(a+b)*h;//加個f就證明他們是浮點數了~~
25樓:匿名使用者
1/2結果為0.
1和2為整型 結果也去整為0.
但是為 因為是浮點型。
已知a=1,b=2,c=3,則表示式a*b&&(b++,!c)&&(a++,c++)的值是。該表示式運算過後,a=? ,b=? ,c=? 5
26樓:聽不清啊
該表示式運算過後,a=1 ,b=3 ,c=3因為 1*2的值非0,被認為是「真」
&&後面繼續計算:b++,c
是一個逗號表示式,b變成了3,!c的值為0(因為c原值為非0,即「真」,取反後即為「假」),所以逗號表示式的值為「假」。
整個表示式的值已經確定,為「假」,後面總分不再運算。
所以,a=1 ,b=3 ,c=3
27樓:匿名使用者
首先得知道&&進行的是短路運算,如果運算子的左邊經計算後結果為假,則不會再計算右邊。
因a*b=2為真,接著計算(b++,c),而(b++,c)是一個逗號表示式,逗號表示式按從左往右計算,整個表示式的結果為最右邊那個表示式的結果。
所以,(b++,c)經計算後為(2,0),逗號表示式的值是0,同時b為3,而已為假,不會再計算(a++,c++)因此,結果是表示式a*b&&(b++,c)&&a++,c++)的值是0,該表示式運算過後,a=1,b=3,c=3。
28樓:三天打魚
看結果就知道了 執行了第一個括號之後就返回了 後面的括號沒有執行。
第一個括號最後一個值是!c c邏輯取反運算 c是3 取反後是0 然後逗號表示式返回最後一個值 返回了0 前面的&&遇到0就直接返回結果了。
29樓:
根據運算子的優先順序,表示式等價於。
(++a) |b) &c)在c/c++中 0為false,非0就是true,上面的表示式就等於true ||true &&true
所以最終的值就是true,如果按照整數輸出,則為1
在c#中,設計一個控制檯程式,定義變數 int a = 3, b = 4, c = 5; 並求表示式(++c-1)&b+c/2的值。
30樓:無奈de失憶
答案是1。首先「&」是邏輯的「與」,兩個都為真即為真,值為1。,有一個是假即為假,值是0.(+c-1) 和b+c/2都不等於0 所以為真。
31樓:匿名使用者
是先算括號裡面,再進行邏輯運算,最後再加減乘除。就本題目,先算(++c-1)c先自加1到得c+1,再減1到得c,c再與b做與操作,由於c與b不等,所以操作結果為0,最再加上c/2,因為是int型要省去餘數,所以得到最後結果為2,。
32樓:願過流聲
int a=3,b=4,c=5;
求表示式:(+c-1)&b+c/2;
其中(++c-1)一定是優先的對吧:那麼這個表示式的值為:c-1後自身+1:就是括號內的值是5,&是優先順序最低的.那麼c因為自身加了1=6了.6/2=3;b+3=7;
5&7=5了.所以結果為:5;
至於5&7為什麼得5.你要懂&演算法.101就是5,但是111是7,真假真,就是5.
8是:1000,5是 0101
答案就是:真假假假,所以還是8. 先我為呀.
33樓:管文華
基本運算子優於特殊運算子如》<=優於&&
34樓:匿名使用者
答案為5. 具體優先順序請參考?kz=869790562
256減99的簡便運算後為什麼要加一
因為 99 100 1 256 99 256 100 1 156 1 157 99 256 256,用最簡便的方法怎麼計算?乘法分配律 指兩個數的和與一個數相乘,可以先把它們分別與這個數相乘,再相加 99 256 256 99 1 256 100 256 25600 99x256 256 256x ...
定義結構體最後為什麼要再加分號,定義一個結構體最後為什麼要再加一個分號
定義一個結構體最後加一個分號,一個宣告語句 函式外定義了一個全域性的結構體變數,就可以不加分號,如果定義了多個全域性的,則最後一個可以不加,申明語句也要加分號啊 結構體型別只能是宣告 例如宣告瞭一個結構體型別 struct student 定義變數形式 型別名 變數名 就是這麼規定的。定義結構體是一...
男生表白後,為什麼又不理你了,為什麼一個男生向我表白之後卻不理我了
那個男的很像我喲!其實不必擔心,我保證他還是喜歡你的.只不過他怕你拒絕,而感到不知所措和害羞,甚至也會躲著你。這時你如果喜歡他,你就應該主動點,不要讓他感到沒希望,不然他會很容易放棄的。主動點!給你空間讓你好好思考咯。同時也是給自己時間好好想想。過段時間他應該會來找你的吧 如果他一直沒來找你 你又喜...