c語言中 計算如何算

時間 2023-05-25 15:33:05

1樓:匿名使用者

三目運算子應該從右邊算到左邊 他的演算法完全錯了我給你說說吧 例 對於表示式 --a ==b++ a++ b++這裡涉及了c中的優先順序、結合性、求值順序。

結合性只有在相同優先順序的運算子間才起作用,比如a+b*c,+與*優先順序不同,這裡根本不用去管結合性。而a+b+c則需要進行結合性考慮了,如果+為左結合性,那麼應該理解為:(a+b)+c,如果+為右結合性,那麼應該理解為a+(b+c),當然了,我們已經知道+為左結合性了。

對於?:,在c中與它優先順序相同的只有它自己,因此只有連續的?:才會體現出它的右結合性,即a?

b:c?d:

e中,根據右結合性可知應理解為a?b:(c?

d:e)。顯然,上述問題中是體現不出這種結合性來的。

再者,還有乙個求值順序的問題,a?b:c中,c語言規定先對a求值,非零則對b求值並作為該表示式的值,為零則對c求值並作為表示式的值,並且b和c中有且僅有乙個會被求值。

對於題目中的就應該是:先進行(--a ==b++)的求值,根據是否為零,會對(a++)或(b++)進行求值。說白了,也就是只有兩種可能性:

可能性1:先算(--a ==b++)再算(a++)可能性2:先算(--a ==b++)再算(b++)至於(--a ==b++)中到底是先算--a 還是b++則僅從c語言這個角度是無法判別的,這是個實現問題,如果要想寫出健壯的可移植的**就應該避免這種表述。

總結一下,就是先看優先順序,次看結合性,有的求值有序,有的則無序。

2樓:小小_天晴

我給你舉個例子吧,太抽象或許不好理解。

比如說:若w=1,x=2,y=3,z=4;則條件表示式w>x?w:yx不成立 則看y希望能夠幫助到你,o(∩_o謝謝~

c語言+=是什麼運算子?

3樓:匿名使用者

c語言+=是算術運算子。算術運算子即算術運算符號。加法運算子 + 雙目運算子,即應有兩個量參與加法運算。

如a+b,4+8等。具有右結合性。減法運算子 - 雙目運算子。

但「-」也可作負值運算子,此時為單目運算,如-x,-5等具有左結合性。

算術運算子是完成基本的算術運算符號,就是用來處理四則運算的符號。

a1單元格輸入乙個數字,例如:150,b1輸入公式:=a1/100,回車後b1顯示結果為1.

5,這個公式中用到了單元格引用(a1)和運算子除號(/)意思是對a1單元格的資料除以100,在c1單元格輸入=a1%,回車後你會發現結果和b1的公式結果一樣,這裡就是利用了百分號(%)直接參與運算了。

c語言中/ %是怎麼運算的

4樓:紫月開花

算數運算是指能夠完成算術運算功能的運算子 如+-*關係運算子是比較兩個值的大小關係 c語言的結果包括中 就是0和1 也就是假和真 運算子有如: >邏輯運算子執行結果與關係表示式執行結果相同 成立1 不成立0 且(&&或(||非(!

三者優先順序為 算術 關係 邏輯 (由高到低)

5樓:三城補橋

(結構體、類、共同體等)取成員運算子,例如,p->

相當於:*p).

p一定是乙個指標型別。

舉個例子說吧:

struct student

你定義個資料:

struct student *p;

那麼,你就可以這個取它的成員了:

p).name (*p).age這個等於如下的寫法:

p->name p->age

應該清楚了吧?看答案怎麼樣?

6樓:金色潛鳥

/ 是2目運算子,除法運算,整數除以整數則得整數,d = 9/5;

x = 9/5;

printf("d=%lf x=%d",d,x); 得 d= x=1

d = 9./5;

x = 9./5;

printf("d=%lf x=%d",d,x); 得 d= x=1

是2目運算子,整數除法,取餘數運算。

9 % 5 得 餘數 4

c語言中,『/』,『%』是怎麼運算的?

7樓:起名字難吶啊

%是除法取餘運算。

用於整數與整數運算。否則,不同的編譯器會得不同結果。

'為取餘運算子,用於把它前面的整數值或表示式除以其後面的整數值或表示式,結果為不能被後。

面的整數或表示式整除的最小整數,它後面的數值應該為大於1的正整數。如表中所示的"13%7",就表示13 除以7餘6。

作為雙目運算子,左右運算元可以是數值,也可以是表示式。

但'%'運算子的左右運算元必須是整數。

負數取餘運算ms vc++ 編譯器:

c語言中,幫解釋下%運算的值

8樓:陸美富

0%5=? 的商是0,那麼餘數就是0-0*5=010%2=?的商是5,那麼餘數就是10-2*5=03%5=?

的商是0,那麼餘數就是3-0*5=34%7=?的商是0,那麼餘數就是4-0*7=4這樣解釋,你理解了嗎??

9樓:gis廣益

5%4=1

是取餘 運算子。

如果 a / b = m

a%b = a - m *b

10樓:網友

求模啊!就是。

例如:11%4=2餘3

所以答案11%4就是3

所以0%5=5

c語言演算法:求1×3×5×……×1000

11樓:♂凡鳥

應該是寫錯了。

你可以參照文庫裡的這個ppt:

這個ppt裡面有這一段(第22頁),寫的是i≤1000

不過這裡還是有問題,其實這個不應該是1000,而應該是1001

因為i+2p永遠不會等於1000,當i=999時候下乙個應該是1001,這樣永遠都乘不上1000。

而且這個序列從前面來看就是奇數的數列,也不應該直接把1000放在省略號的後面。

所以這兩個版本都是有錯誤的,正確的應該是:

求1×3×5×……1001:

s1:1ps2:3i

s3:p×ip

s4:i+2p

s5:若i≤1001,返回s3。否則,結束。

如下ppt的第9頁:

12樓:匿名使用者

沒看明白扣樓主要表達的。麻煩些清楚點。

13樓:匿名使用者

沒看懂你這個到底表達什麼意思。

c語言中這個怎麼算,詳細說一下

14樓:匿名使用者

第二個>應該是?,如果a>b則x=a+c,否則x=b

15樓:網友

第二個>應該是問號吧?!!

16樓:聽不清啊

樓主寫的有點錯了,應該是:

x=a>b?a+c:b;

意思是:若a>b,則x=a+c; 否則,x=b;

17樓:匿名使用者

如果a等於b則x=a+c,否則x=b,三目運算子。

c語言中計算,c語言中計算100 1000之間有多少個數,其各位數字之和是5的程式

示例 include intmain if s 5 continue else count 擴充套件資料 include int addnumbers int n int main int num printf 輸入乙個整數 scanf d num printf sum d addnumbers n...

C語言指標計算,c語言中,指標的運算是怎麼算的,如pa

設pa是指向陣列a的指標變數,則pa n,pa n,pa pa,pa pa 運算都是合法的。指標變數加或減乙個整數n的含義是把指標指向的當前位置 指向某陣列元素 向前或向後移動n個陣列元素位置 指標變數 表示指標指向指向的當前位置 指向某陣列元素 向前或向後移動1個陣列元素位置。成立,但要同一型別。...

C語言中怎麼計算x,y的值,c語言中(x,y)中怎麼計算

int x,y 定義的時候如果不初始化,不同的環境會初始化不同的值,有的是0,有的不是,你的這個程式,x的結果是不定的,同時,有些環境下除錯也會報錯! 此處無名勝有名 c語言的賦值語句是從右到左執行的,比如 x y 1 意思就是 把y 加1後賦值給x但c語言的語序是從上到下執行的 本題中,當執行in...