PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 印出什麼
作者:
ooww
(另外一個我)
2021-02-05 00:33:08
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
onlineGDB
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
印出問題
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
#include <stdio.h>
int main()
{
int n = 0;
if(n = 0) n=1;
else if(n=1) n=2;
else if(n=2) n=3;
else if(n=3) n=4;
printf("n = %d", n);
return 0;
}
補充說明(Supplement):
照著課本上的題目寫
課本答案輸出為 1
但是測試後輸出為2
請教另一位中央資工所同學也表示很納悶
他也認為答案是1
跪求版上碼農大大開示 還是課本答案錯了?
(標題不太清楚怎麼描述比較好)
作者:
Schottky
(順風相送)
2021-02-05 00:38:00
你是不是把 if 判斷式裡面的 == 寫成 = 了
作者:
nh60211as
2021-02-05 00:44:00
中央資工所==
作者:
Schottky
(順風相送)
2021-02-05 00:56:00
請把課本題目拍給我們參詳參詳
作者:
poolongkong
(普攏貢)
2021-02-05 01:06:00
= 是 assign,== 才是判斷左右兩邊是否相等說不定你同學以為你打錯,自動把 = 轉成 == 了 XD
作者:
Schottky
(順風相送)
2021-02-05 01:41:00
嗯嗯,這是課本印錯,但與其說是答案錯不如說題目印錯就是 == 印錯變成 = 的問題,請向老師反應這個問題和 main() 的傳回值是 int 或 void 完全無關是的,正解
作者:
loveme00835
(髮箍)
2021-02-05 01:51:00
你可以試試加上選項 -Wall -Werror -pedantic-errors連編譯都不會過的東西就不用看了你那個網站沒地方加有點爛, 一般社群分享程式碼都是用 Compiler Explorer
https://godbolt.org/z/n66zcT
各製化選項較多, 如可用比較熱門的函式庫-Wall -Werror 開下去如果沒辦法編過表示程式碼有缺陷 (defect), 即使你關選項忽略它遲早也是要還的
作者:
GTR12534
(カラス)
2021-02-07 00:30:00
assignment 的回傳值bit.ly/assignment-value
作者: kaneson (Lance)
2021-02-09 10:01:00
題目寫=是故意的,寫==是考小學生因為c是少數assign statement仍可取值不會報錯的語言.所以這也是一個找bug的要注意的點。我是覺得課本答案錯了
作者:
Lipraxde
(Lipraxde)
2021-02-09 10:19:00
印象中看過有一種 coding style 是把 condition 的式子倒過來,例如變成:1 == n。
作者: asdfdsa1024
2021-02-10 19:29:00
看起來是因為第一個if 是賦值0所以判斷式為false 不會進入第一個if 第二個else if 賦值1所以會進入 因此n=2
繼續閱讀
[問題] C++ z3 solver 問題
chiya0219
[問題] makefile phony問題
anoymouse
[問題] 資料序列化處理 in C
windtodream
[問題] malloc 記憶體長度的問題
gowrite
[問題] Include header 檔案問題
skyconquer
[問題] 一個LRU cache實作的問題
Neverfor
Re: [問題] 標頭檔的問題
nh60211as
[問題] 標頭檔的問題
shiburin
opencv 安裝 in win8.1 參數設定
dhtsai
[問題] 任意數加總的演算法
HowLeeHi
Links
booklink
Contact Us: admin [ a t ] ucptt.com