a b c 3 0中3後為什麼要加一個

2023-02-20 00:10:10 字數 6255 閱讀 4169

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 定義變數形式 型別名 變數名 就是這麼規定的。定義結構體是一...

男生表白後,為什麼又不理你了,為什麼一個男生向我表白之後卻不理我了

那個男的很像我喲!其實不必擔心,我保證他還是喜歡你的.只不過他怕你拒絕,而感到不知所措和害羞,甚至也會躲著你。這時你如果喜歡他,你就應該主動點,不要讓他感到沒希望,不然他會很容易放棄的。主動點!給你空間讓你好好思考咯。同時也是給自己時間好好想想。過段時間他應該會來找你的吧 如果他一直沒來找你 你又喜...