看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚)三元運算子使用後T&F的問題 希望得到的正確結果:輸入一個整數值M,若M<0則輸出正值 M<0?-M:M 程式跑出來的錯誤結果:都只有輸入的原值... 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev 有問題的code: (請善用置底文標色功能) cout << "請輸入一個數字:"; cin >> M; cout << M<0?-M:M; 補充說明:該如何輸出正值呢?謝謝大家^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.209.159
loveme00835:好問題, 因為?:的優先權比左移<<還要低, 所以你這行 10/18 14:07
loveme00835:等價於 (cout << M)<0?-M:M; 為了避免它跑出你不想要 10/18 14:08
loveme00835:的結果, 右邊要自己搶先把它括起來 cout << (M<0?-M); 10/18 14:09
loveme00835:三元運算子的整個敘述最好視為一個整體, 也要有加上括 10/18 14:10
loveme00835:號的好習慣, 不過除非是初始reference必需要用到?: 10/18 14:11
loveme00835:一般來說寫 if else 會比較清楚 10/18 14:11
silia:謝謝樓上^^ 現在主要是練習~可是我加上括號還是輸出原值>"< 10/18 14:14