ifabc為什麼錯誤

2021-03-09 05:01:30 字數 2732 閱讀 4392

1樓:匿名使用者

a>b>c在c語言裡頭被認為是一個表示式

根據c編譯系統的不同(從左自右結合運算或從右自左結合運算),這個表示式會被認為是(a>b)>c或者a>(b>c)

a>b是一個表示式,如果a大於b,那麼這個式子的值就是true,否則就是false

而基本約定俗成的,我們都會#define true 1,就是說true為1,false為0

假設a=3,b=2,c=1,c編譯系統按照從左自右結合運算,那麼就是(a>b)>c,由於a比b大,因此a>b這個表示式的值為真,也就是值為1,,然後 表示式a>b的值再與c比較,兩邊都是1,是相等的,大於號不成立,因此(a>b)>c的結果是false

如果你的本意是想讓程式「當a>b且b>c」時執行if語句塊裡的語句時,你如果用a>b>c,那麼if語句塊裡的語句就有可能根本不會被執行(當然,在我上面假設的這種情況下,如果a=2,b=1,c=0,if語句塊中的語句還是會被執行的,你可以自己思考一下)。

因此,為了保證程式的正確性,我們必須這麼寫:if(a>b && b>c)

如果還有不清楚的地方,可以給我發訊息,最近正好要寫一本c語言的教材,你提的問題也可以讓我們知道在教材中應該在哪些方面要加強

2樓:匿名使用者

你當數學啊~~

if (b>c && a>b)

c語言中,if(a==b)和if(a=b)什麼區別?

3樓:匿名使用者

區別大了

if (a==b) 只要a和b 相等就為真

if (a=b) 是將b的值賦給a,再判斷最終的a, 所以只要b不為0 if (a=b)就使終為真.

4樓:匿名使用者

if語句如果沒有大括號 預設只有一個跟隨語句;

也就是說在你的第一個例子中,if語句成立 則t=a;會被執行,而a=b;b=t;什麼情況下都會被執行。

而第二個例子中加了大括號,被認為是一個整體,所以if的判斷條件成立與否決定了大括號裡面的所有語句的執行與否。

5樓:匿名使用者

條件語句後離他最近的一句是執行語句

無大括號,即t=a是if判真後執行語句,其他幾句並非if的執行語句,與if無關,也就是說不論if成立與否都執行。

有大括號表示一個整體,相當於一個大語句,都是滿足if條件後的執行語句,也就是說若if判真,則大括號中語句都執行,否則都不執行

6樓:匿名使用者

c語言中沒有連續不等式的寫法。if(a>b>c) 這種寫法程式不能正確執行。

if(a>b&&b>c) 是正確寫法。

7樓:幸福—飛揚

if (a==b) :表示如果a和b 相等就條件為真,即執行if後的語句

if (a=b) 是將b的值賦給a,再判斷最終的a, 所以只要b不為0 ,即a不為0, if (a=b)就始終為真.

8樓:匿名使用者

if(a==b) 是判斷 如果 a 等於b的話,,,條件成立進行下面的操作

if(a=b)則是錯誤的,,解釋為 如果 b賦值給a,只要b!=0條件就會成立的

9樓:

沒有大括號,if成立的話,就執行t=a;這條語句,然後執行a=b;b=t;

有大括號,if成立的話,則執行)這的內容。

10樓:伊伊不捨

你好,我認為是:if(a==b)是判斷語句,條件為真時就執行if的子句

if(a=b)是賦值語句,將b的值賦值給a

11樓:墮影幽篁

==是表示判斷

=是表示賦值

if(a=b)絕對是1(即為ture)

而if(a==b)只有在a與b相等才是1,否則是0.

12樓:

a==b是邏輯比較 當a與b相等的時候反回非0值 不等的時候返回0

a=b是賦值 返回b的結果

13樓:匿名使用者

a==b是a等於b

a=b是將b賦值給a

14樓:匿名使用者

==是條件運算子 =是賦值運算子,顯然兩者不一樣啊

15樓:匿名使用者

if(a==b)是邏輯比較

if(a=b)是錯誤,一般沒有這種寫法

main() { int a=5,b=4,c=3,d=2; if(a>b>c) printf(「%d\n」,

16樓:水心泡泡

計算首先進入第一個if,判斷a>b正確,則為1,繼續判斷1>c,錯誤,整個式子值為0,所以不執行下面的語句,進入else if,(c-1>=d)正確,則為1 ,繼續判斷1==1正確,則執行printf(「%d\n」,d+1);輸出為3

17樓:量子高巨集亮

void main()

18樓:迅雷經濟

應該是if的巢狀

if(a>b) //這一步不滿足,程式跳過if(b知道你的else寫在**,如果跟if(b不會走的,如果跟第一個if匹配結果有了,下面有

printf("%d",++d+1);

printf("%d\n",d);

執行結果:2

19樓:匿名使用者

字元是中文 最後一個print少分號

求解犯了那些錯誤,為什麼犯過的錯誤會再犯?求正解。

甲不應該把自己和乙的矛盾告知丙,還說隱私,導致後續的乙把他拉黑不應該發笑臉 有些人會誤人表情含義,特別是不熟的人丙的反應是第二條的後續,為朋友撐腰吧 丁的話,估計是人云亦云 準備東西的人和沒準備東西的人都一一向群主彙報一下 儘量做到完美 為什麼犯過的錯誤會再犯?求正解。10 所謂的正確,是因為邏輯正...

為什麼電腦開啟網頁總是出現錯誤

ie為何總是出現網頁錯誤 ie中的指令碼錯誤 某個網頁可能會無法正常顯示或工作,您可能會收到一條類似於以下之一的錯誤訊息 該網頁上的問題可能使其無法正常顯示或功能不正常。以後,雙擊顯示在狀態列中的警告圖示,就可以顯示上述訊息。如果您單擊 顯示詳細資訊 則會顯示類似於下面的錯誤詳細資訊 不能開啟網頁的...

跪求為什麼開啟檔案就出現錯誤

access violation 非法訪問 原句 access violation at address 0084645c in module w3gmaster.exe read of address 00000004意思是 非法訪問 0084645c 十六進位制值 應用程式名 access vi...