剛入門學c的思維轉化,機械思維很重
阿新 • • 發佈:2018-11-17
##數學中的a<b<c和計算機中的a<b<c;
#include<stdio.h> int main() { int a, b, c; scanf("%d, %d, %d", &a, &b, &c); y = (a < b < c); //邏輯表達判定,y只有1和0兩種情況;1真0假 printf(" %d ", y); return 0; } `` 在上面的程式碼中,假如輸入a=3,b=4,c=5 想必大家一眼就能看出輸出 y=1;這沒什麼問題。但是如果我輸入 a=-5,b=-4,c=-3呢? 一眼看上去好像就是那麼回事,但y還真不等於1;應該輸出*y=0;* **why** a<b<c,-5<-4<-3; 從左往右一步一步來: -5<-4 為真,此時這部分就為1, 1<-3 為假 ,此時這部分為0,最後輸出y=0; 計算機是機械的執行指令,一步一算,一部一結果,所以不能用我們的思維去想當然編譯程式碼;比如我想要說明a,b,c中最大的數 我們會寫c>b>a;但計算機是讀不懂的;c>b&&c>a,才能讓你得到最大值。注(&&是數學中的 ‘與’