[問題] 初學遇到問題

看板C_and_CPP (C/C++)作者 (waterpig)時間16年前 (2009/08/17 03:12), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/3 (看更多)
以下是照著書打的 #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

08/17 03:40, , 1F
給程式碼第16行開頭一個左括弧,第17行結尾一個右括弧
08/17 03:40, 1F

08/17 03:45, , 2F
可以了...但為什麼會這樣= =?
08/17 03:45, 2F

08/17 03:46, , 3F
我猜是三元運算以為他已經結束了 所以繼續往下讀到
08/17 03:46, 3F

08/17 03:46, , 4F
printf 就繼續往下做了 不知道對不對
08/17 03:46, 4F

08/17 03:47, , 5F
紅色那行是額外的輸出 你應該有發現吧!?
08/17 03:47, 5F
恩... 那為什麼只有出現 . . Integer i>3 i<=3 . . 而不是 . . Integer i>3 Integer i<=3 . . ※ 編輯: Waterpig 來自: 118.160.37.36 (08/17 03:51)

08/17 04:09, , 6F
該程式碼實際同第16行結尾逗號更改為分號,第17行退1縮排
08/17 04:09, 6F
恩 我現在問題在於 printf("Integer i<=3\n"); printf("Integer "),printf("i<=3"\n"); 這兩個寫法不是一樣意思嗎? 那結果為什麼會變成那樣?= = ※ 編輯: Waterpig 來自: 118.160.37.36 (08/17 04:18)
文章代碼(AID): #1AY5ejSC (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1AY5ejSC (C_and_CPP)