推 Schottky: 你是不是把 if 判斷式裡面的 == 寫成 = 了 02/05 00:38
題目故意這樣的
推 nh60211as: 中央資工所== 02/05 00:44
推 Schottky: 請把課本題目拍給我們參詳參詳 02/05 00:56
https://imgur.com/a/WvLlzXK
若 void main(void)
改成
int main() 會有影響嗎?
→ poolongkong: = 是 assign,== 才是判斷左右兩邊是否相等 02/05 01:06
→ poolongkong: 說不定你同學以為你打錯,自動把 = 轉成 == 了 XD 02/05 01:08
※ 編輯: ooww (218.166.79.179 臺灣), 02/05/2021 01:41:21
推 Schottky: 嗯嗯,這是課本印錯,但與其說是答案錯不如說題目印錯 02/05 01:41
→ Schottky: 就是 == 印錯變成 = 的問題,請向老師反應 02/05 01:42
→ Schottky: 這個問題和 main() 的傳回值是 int 或 void 完全無關 02/05 01:43
感謝
弱弱問一下
if(n == 0) n=1;
else if(n==1) n=2;
else if(n==2) n=3;
else if(n==3) n=4;
最後印出n = 1
是因為跑完這行if(n == 0) n=1;
以下就直接跳過嗎?
※ 編輯: ooww (218.166.79.179 臺灣), 02/05/2021 01:49:17
推 Schottky: 是的,正解 02/05 01:50
感謝大大
→ loveme00835: 你可以試試加上選項 -Wall -Werror -pedantic-errors 02/05 01:51
→ loveme00835: 連編譯都不會過的東西就不用看了 02/05 01:52
https://imgur.com/a/9n7wcLI
請問哪裡可以加?
※ 編輯: ooww (218.166.79.179 臺灣), 02/05/2021 02:03:51
→ loveme00835: 你那個網站沒地方加有點爛, 一般社群分享程式碼都是 02/05 02:10
→ loveme00835: 各製化選項較多, 如可用比較熱門的函式庫 02/05 02:12
→ loveme00835: -Wall -Werror 開下去如果沒辦法編過表示程式碼有缺 02/05 02:13
→ loveme00835: 陷 (defect), 即使你關選項忽略它遲早也是要還的 02/05 02:14
感謝愛我大大
※ 編輯: ooww (122.121.82.80 臺灣), 02/05/2021 02:18:37
推 GTR12534: assignment 的回傳值 02/07 00:30
→ GTR12534: bit.ly/assignment-value 02/07 00:32
推 kaneson: 題目寫=是故意的,寫==是考小學生 02/09 10:01
推 kaneson: 因為c是少數assign statement仍可取值不會報錯的語言. 02/09 10:14
→ kaneson: 所以這也是一個找bug的要注意的點。我是覺得課本答案錯 02/09 10:14
→ kaneson: 了 02/09 10:14
感謝k大大
→ Lipraxde: 印象中看過有一種 coding style 是把 condition 的式子 02/09 10:19
→ Lipraxde: 倒過來,例如變成:1 == n。 02/09 10:19
感謝L大大
※ 編輯: ooww (122.121.89.109 臺灣), 02/09/2021 12:34:07
推 asdfdsa1024: 看起來是因為第一個if 是賦值0所以判斷式為false 不 02/10 19:29
→ asdfdsa1024: 會進入第一個if 第二個else if 賦值1所以會進入 因此 02/10 19:29
→ asdfdsa1024: n=2 02/10 19:29
感謝a大大
※ 編輯: ooww (1.173.74.242 臺灣), 02/11/2021 00:19:18