a b c)(a b cb c a)(b c a)求解為什麼最後答案是 2(b c a)(b c

時間 2021-09-10 10:13:45

1樓:匿名使用者

(a-b-c)(a+b-c)-(b-c-a)(b+c-a)=-(b+c-a)(a+b-c)-(b-c-a)(b+c-a)=(b+c-a)[-(a+b-c)-(b-c-a)]=(b+c-a)(-a-b+c-b+c+a)=(b+c-a)(-2b+2c)

=-2(b+c-a)(b-c)

2樓:匿名使用者

(a-b-c)(a+b-c)-(b-c-a)(b+c-a)=(a-c-b)(a-c+b)-(b-a-c)(b-a+c)=(a-c)²-b²-【(b-a)²-c²】=a²-2ac+c²-b²-b²+2ab-a²+c²=-2ac+2ab-2b²+2c²

=-2a(c-b)+2(c-b)(c+b)=-2(c-b)(a-c-b)

=-2(b+c-a)(b-c)

3樓:山水河村

原式=-(b+c-a)(a+b-c)-(b+c-a)(b-c-a)=-(b+c-a)[(a+b-c)+(b-c-a) ]=-(b+c-a)(2b-2c)

=-2(b+c-a)(b-c)

4樓:匿名使用者

(a-b-c)(a+b-c)-(b-c-a)(b+c-a)=(a-c)^2-b^2-(b-a)^2+c^2==(a-c)^2-(b-a)^2+c^2-b^2=(a-c+b-a)(a-c-b+a)+(b+c)(b-c)=(b-c)(2a-b-c))+(b+c)(b-c)(b-c)(2a-b-c+b+c)

=2a(b-c)

int a=3,b=2,c=1; if(a>b>c) a=b; else a=c; 最後a的值是多少? 為什麼 分析一下。

5樓:倒黴熊

若程式沒有問題,答案應該是1;

a>b>c 按從左到右的順序,a>b 為真即為1,1>c為假,所以if不成立,else成立。a=c=1;

要想if成立,需修改為:if(a>b && b>c)

6樓:匿名使用者

a=1主要是考察if(a>b>c)

a>b的真值是1,1=c,所以if中的不成立,所以a=c。

7樓:匿名使用者

a等於1,因為a>b>c其實是(a>b)>c,也就是1>1,所以表示式為假

在c++中,a=4,b=10,c=2 計算:a+b*c/(a+c)%3/a 的最後結果 順便把運算子的優先順序告訴哈我 謝謝

8樓:匿名使用者

如果a,b,c,是int型的話:

1、 4+10*2/(4+2)%3/4

2、 4+10*2/6%3/4

3、 4+20/6%3/4

4、 4+3%3/4

5、 4+0/4

6、 4

c++的優先順序

優先順序 操作符 結合性

1 :: 左

2 . -> () 左

3 ++ -- ~ ! - + & * () sizeof new delete castname_cast單目操作符 右

4 .* ->* 左

5 * / % 左

6 + - 左

7 << >> 左

8 < <= > >= 左

9 == != 左

10 & 左

11 ^ 左

12 | 左

13 && 左

14 || 左

15 ?: 右

16 = *= /= %= += -= <<= >>= &= |= ^= 右

17 throw 左

18 , 左

c++的優先順序

一、賦值運算子

賦值語句的作用是把某個常量或變數或表示式的值賦值給另一個變數。符號為『=』。這裡並不是等於的意思,只是賦值,等於用『==』表示。

注意:賦值語句左邊的變數在程式的其他地方必須要宣告。

得已賦值的變數我們稱為左值,因為它們出現在賦值語句的左邊;產生值的表示式我們稱為右值,因為她它們出現在賦值語句的右邊。常數只能作為右值。

例如:count=5;

total1=total2=0;

第一個賦值語句大家都能理解。

第二個賦值語句的意思是把0同時賦值給兩個變數。這是因為賦值語句是從右向左運算的,也就是說從右端開始計算。這樣它先total2=0;然後total1=total2;那麼我們這樣行不行呢?

(total1=total2)=0;

這樣是不可以的,因為先要算括號裡面的,這時total1=total2是一個表示式,而賦值語句的左邊是不允許表示式存在的。

二、算術運算子

在c語言中有兩個單目和五個雙目運算子。

符號 功能

+ 單目正

- 單目負

* 乘法

/ 除法

% 取模

+ 加法

- 減法

下面是一些賦值語句的例子, 在賦值運算子右側的表示式中就使用了上面的算術運算子:

area=height*width;

num=num1+num2/num3-num4;

運算子也有個運算順序問題,先算乘除再算加減。單目正和單目負最先運算。

取模運算子(%)用於計算兩個整數相除所得的餘數。例如:

a=7%4;

最終a的結果是3,因為7%4的餘數是3。

那麼有人要問了,我要想求它們的商怎麼辦呢?

b=7/4;

這樣b就是它們的商了,應該是1。

也許有人就不明白了,7/4應該是1.75,怎麼會是1呢?這裡需要說明的是,當兩個整數相除時,所得到的結果仍然是整數,沒有小數部分。

要想也得到小數部分,可以這樣寫7.0/4或者7/4.0,也即把其中一個數變為非整數。

那麼怎樣由一個實數得到它的整數部分呢?這就需要用強制型別轉換了。例如:

a=(int) (7.0/4);

因為7.0/4的值為1.75,如果在前面加上(int)就表示把結果強制轉換成整型,這就得到了1。那麼思考一下a=(float) (7/4);最終a的結果是多少?

單目減運算子相當於取相反值,若是正值就變為負值,若是負數就變為正值。

單目加運算子沒有意義,純粹是和單目減構成一對用的。

三、邏輯運算子

邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。

符號 功能

&& 邏輯與

|| 邏輯或

! 邏輯非

當表示式進行&&運算時,只要有一個為假,總的表示式就為假,只有當所有都為真時,總的式子才為真。當表示式進行||運算時,只要有一個為真,總的值就為真,只有當所有的都為假時,總的式子才為假。邏輯非(!

)運算是把相應的變數資料轉換為相應的真/假值。若原先為假,則邏輯非以後為真,若原先為真,則邏輯非以後為假。

還有一點很重要,當一個邏輯表示式的後一部分的取值不會影響整個表示式的值時,後一部分就不會進行運算了。例如:

a=2,b=1;

a||b-1;

因為a=2,為真值,所以不管b-1是不是真值,總的表示式一定為真值,這時後面的表示式就不會再計算了。

四、關係運算子

關係運算子是對兩個表示式進行比較,返回一個真/假值。

符號 功能

> 大於

< 小於

>= 大於等於

<= 小於等於

== 等於

!= 不等於

這些運算子大家都能明白,主要問題就是等於==和賦值=的區別了。

一些剛開始學習c語言的人總是對這兩個運算子弄不明白,經常在一些簡單問題上出錯,自己檢查時還找不出來。看下面的**:

if(amount=123) ……

很多新人都理解為如果amount等於123,就怎麼樣。其實這行**的意思是先賦值amount=123,然後判斷這個表示式是不是真值,因為結果為 123,是真值,那麼就做後面的。如果想讓當amount等於123才執行時,應該if(amount==123) ……

五、自增自減運算子

這是一類特殊的運算子,自增運算子++和自減運算子--對變數的操作結果是增加1和減少1。例如:

--couter;

couter--;

++amount;

amount++;

看這些例子裡,運算子在前面還是在後面對本身的影響都是一樣的,都是加1或者減1,但是當把他們作為其他表示式的一部分,兩者就有區別了。運算子放在變數前面,那麼在運算之前,變數先完成自增或自減運算;如果運算子放在後面,那麼自增自減運算是在變數參加表示式的運算後再運算。這樣講可能不太清楚,看下面的例子:

num1=4;

num2=8;

a=++num1;

b=num2++;

a =++num1;這總的來看是一個賦值,把++num1的值賦給a,因為自增運算子在變數的前面,所以num1先自增加1變為5,然後賦值給a,最終a也為5。b=num2++;這是把num2++的值賦給b,因為自增運算子在變數的後面,所以先把num2賦值給b,b應該為8,然後num2自增加1變為 9。

那麼如果出現這樣的情況我們怎麼處理呢?

c=num1+++num2;

到底是c=(num1++)+num2;還是c=num1+(++num2);這要根據編譯器來決定,不同的編譯器可能有不同的結果。所以我們在以後的程式設計當中,應該儘量避免出現上面複雜的情況。

六、複合賦值運算子

在賦值運算子當中,還有一類c/c++獨有的複合賦值運算子。它們實際上是一種縮寫形式,使得對變數的改變更為簡潔。

total=total+3;

乍一看這行**,似乎有問題,這是不可能成立的。其實還是老樣子,'='是賦值不是等於。它的意思是本身的值加3,然後在賦值給本身。為了簡化,上面的**也可以寫成:

total+=3;

複合賦值運算子有下列這些:

符號 功能

+= 加法賦值

-= 減法賦值

*= 乘法賦值

/= 除法賦值

%= 模運算賦值

<<= 左移賦值

>>= 右移賦值

&= 位邏輯與賦值

|= 位邏輯或賦值

^= 位邏輯異或賦值

上面的十個複合賦值運算子中,後面五個我們到以後位運算時再說明。

那麼看了上面的複合賦值運算子,有人就會問,到底total=total+3;與total+=3;有沒有區別?答案是有的,對於a=a+1,表示式a被計算了兩次,對於複合運算子a+=1,表示式a僅計算了一次。一般的來說,這種區別對於程式的執行沒有多大影響,但是當表示式作為函式的返回值時,函式就被呼叫了兩次(以後再說明),而且如果使用普通的賦值運算子,也會加大程式的開銷,使效率降低。

七、條件運算子

條件運算子(?:)是c語言中唯一的一個三目運算子,它是對第一個表示式作真/假檢測,然後根據結果返回兩外兩個表示式中的一個。

《表示式1>?《表示式2>:《表示式3>

在運算中,首先對第一個表示式進行檢驗,如果為真,則返回表示式2的值;如果為假,則返回表示式3的值。

例如:a=(b>0)?b:-b;

當b>0時,a=b;當b不大於0時,a=-b;這就是條件表示式。其實上面的意思就是把b的絕對值賦值給a。

八、逗號運算子

在c語言中,多個表示式可以用逗號分開,其中用逗號分開的表示式的值分別結算,但整個表示式的值是最後一個表示式的值。

假設b=2,c=7,d=5,

a1=(++b,c--,d+3);

a2=++b,c--,d+3;

對於第一行**,有三個表示式,用逗號分開,所以最終的值應該是最後一個表示式的值,也就是d+3,為8,所以a=8。對於第二行**,那麼也是有三個表示式,這時的三個表示式為a2=++b、c--、d+3,(這是因為賦值運算子比逗號運算子優先順序高)所以最終表示式的值雖然也為8,但a2=3。

還有其他的如位邏輯運算子,位移運算子等等,我們等到講位運算時再說明。

九、優先順序和結合性

從上面的逗號運算子那個例子可以看出,這些運算子計算時都有一定的順序,就好象先要算乘除後算加減一樣。優先順序和結合性是運算子兩個重要的特性,結合性又稱為計算順序,它決定組成表示式的各個部分是否參與計算以及什麼時候計算。

下面是c語言中所使用的運算子的優先順序和結合性:

優先順序 運算子 結合性

(最高) () -> . 自左向右

! ~ ++ -- + - * & sizeof 自右向左

* / % 自左向右

+ - 自左向右

<< >> 自左向右

< <= > >= 自左向右

== != 自左向右

& 自左向右

^ 自左向右

| 自左向右

&& 自左向右

|| 自左向右

?: 自右向左

= += -= *= /= %= &= ^= |= <<= >>= 自右向左

(最低) , 自左向右

為愛所困求解,求泰劇為愛所困第一季全集完整版中字百度雲資源,免費的,謝謝!

破繭成蝶瀟瀟 樓主,真的能夠感覺出來你是真心想與她在一起的心理,可是現在你一直追著她,問他原因,可她又不說,這樣兩個人都會很鬱悶的!樓主,你還是先讓自己冷靜下來,同時也就給她時間讓她冷靜,等她冷靜下來,你在與她好好溝通,問你想知道的答案,會比現在你想得到的答案都還要準確,因為他是經過思考的,而不是為...

求解夢,求解夢,求解夢!求解夢!!!

代濮羽 解夢,我不知道你要解的是什麼夢 子玉求索 夢到了奇門遁甲 然後走門主 這說明你是一個會有玄學的人 說明你的知識非常淵博 奇門遁甲這本書很多人是理解不透的 這個夢代表著你是是一個記憶高潮的人 冉趣人生 這個夢啊,代表著你善於想象,而且呢,總是考慮一些異想天開的事情。想通過這些事情的讓大家對你有...

求解求解 謝謝,什麼叫基調?求解求解?謝謝!

設原有x噸,第一次賣了1 3x,第二次賣了1 3x乘4 5,把每次買的相加再加45,等於x,自己解吧,就是麻煩點,好借,祝您學習愉快!好吧,這麼多人,完整點,這是複製的,但完全符合我的思路,只不過它是用總數減賣的等於45,沒關係的啦,詳解如下 解 設原有x噸。則第一次賣了1 3x噸。第二次賣了4 5...