一元誰能給我解釋一下,或者告訴我如何解決這個編碼的問題,我有一個與條件運算有條件的經營者使用C
它似乎總是跳過有條件的經營者和剛打印出的第二個選項,即使我改變服務器是0或1
,它總是打印出的第二個選項組B然後組A
爲什麼這不是工作?這是某種語義錯誤?或邏輯錯誤?
#include <stdio.h>
#include <limits.h>
int main(int argc, char *argv[]){
int ch = -191;
int x = UINT_MAX;
int setA[5]={-1,-1,-1,-1,-1};
int setB[5]={-2,-2,-2,-2,-2};
int server = 1;
int i=2;
printf("%d %d\n",server==1?setA[i],setB[i]:setB[i],setA[i]);
printf("%d %d\n",server==0?setA[i],setB[i]:setB[i],setA[i]);
// printf("%u\n%u\n",ch,x);
}
'INT X = UINT_MAX'是一個錯誤。 'int'只能保存值高達'INT_MAX'。 – 2014-09-01 04:42:09
'server == n?setA [i],setB [i]:setB [i]'表示'server == n?setB [i]:setB [i]' – BLUEPIXY 2014-09-01 04:44:34
您可以簡單地使用正確的語法想做。 I.E.而不是:printf(「%d%d \ n」,server == 1?setA [i],setB [i]:setB [i],setA [i]);你可以這樣做:printf(「%d%d \ n」,(server == 1)?(setA [i],setB [i]):(setB [i],setA [i])); – user3629249 2014-09-02 06:01:47