1. 程式人生 > >剛入門學c的思維轉化,機械思維很重

剛入門學c的思維轉化,機械思維很重

##數學中的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,才能讓你得到最大值。注(&&是數學中的  ‘與’