看板 C_and_CPP 關於我們 聯絡資訊
以下是照著書打的 #include<stdio.h> #include<stdlib.h> #define Inter_i (i>3)?"i>3":"i<=3" #define MAX(a,b) (a>b)?(a):(b) int main (void) { int i=3; (i>3)?printf("Integer i>3\n"):printf("Integer i<=3\n"); (i>3)? printf("Integer "), printf("i>3\n") : printf("Integer "), printf("i<=3\n") ; printf("Integer %s\n",(i>3)?"i>3":"i<=3"); printf("Integer %s\n",Inter_i); printf("MAX(300.7,50)=%f\n",MAX(300.7,50)); system("pause"); return 0; } ============================== Integer i<=3 Integer i<=3 Integer i<=3 Integer i<=3 MAX(300.7,50)=300.7 ============================== 沒有問題 問題出在 當我把i=3改成i=5時 會變成這樣... ============================== Integer i>3 Integer i>3 i<=3 Integer i>3 Integer i>3 MAX(300.7,50)=300.7 ============================== 到底是哪裡出錯了?= = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.37.36
snowlike:給程式碼第16行開頭一個左括弧,第17行結尾一個右括弧 08/17 03:40
Waterpig:可以了...但為什麼會這樣= =? 08/17 03:45
christianSK:我猜是三元運算以為他已經結束了 所以繼續往下讀到 08/17 03:46
christianSK:printf 就繼續往下做了 不知道對不對 08/17 03:46
christianSK:紅色那行是額外的輸出 你應該有發現吧!? 08/17 03:47
恩... 那為什麼只有出現 . . Integer i>3 i<=3 . . 而不是 . . Integer i>3 Integer i<=3 . . ※ 編輯: Waterpig 來自: 118.160.37.36 (08/17 03:51)
snowlike:該程式碼實際同第16行結尾逗號更改為分號,第17行退1縮排 08/17 04:09
恩 我現在問題在於 printf("Integer i<=3\n"); printf("Integer "),printf("i<=3"\n"); 這兩個寫法不是一樣意思嗎? 那結果為什麼會變成那樣?= = ※ 編輯: Waterpig 來自: 118.160.37.36 (08/17 04:18)