[問題] 編碼錯誤訊息

看板C_and_CPP作者 (哆啦)時間13年前 (2010/10/25 00:41), 編輯推噓7(7044)
留言51則, 8人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 編寫程式碼時 編譯時反覆出現相同的字 希望版友們還不吝惜指教 希望得到的正確結果: 希望可以讓程式順利執行 程式跑出來的錯誤結果: a function-definition is not allowed here before '{' token expected `,' or `;' before '{' token 上面兩行連續出現兩次,問題都出在左括號的段落 但是不知該如何修改 *這是在主程式後的定義文字 expected `}' at end of input 此行為最後一段的問題 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev-C++ 有問題的code: (請善用置底文標色功能) int max(int a,int b, int c) { if (a > b && a > c); return a; if (b > a && b > c); return b; if (c > a && c > b); return c; } float aver(float a,float b,float c,float d) { return (a+b+c+d)/4; } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.16.190

10/25 00:46, , 1F
那個文字是在告訴你, 你的程式有錯誤, 所以compiler沒辦
10/25 00:46, 1F

10/25 00:46, , 2F
法幫你處理, 並且提出它覺得有問題的地方....
10/25 00:46, 2F

10/25 00:47, , 3F
if () 之後不應該有 ;
10/25 00:47, 3F

10/25 00:47, , 4F
另外, 這是完整的code嗎?? 先說, if的後面直接帶 ; , 那
10/25 00:47, 4F

10/25 00:48, , 5F
if條件成立時反而什麼都不會做, 所以max就直接return a
10/25 00:48, 5F

10/25 00:48, , 6F
了, 至於語法上的錯誤可能要看所有的程式碼....
10/25 00:48, 6F

10/25 00:49, , 7F
主程式應該有錯 這裡語法上都沒錯
10/25 00:49, 7F

10/25 00:49, , 8F
就算刪除了if後的;,仍會出現相同的訊息
10/25 00:49, 8F

10/25 00:50, , 9F
那就給一下更完整的程式碼吧
10/25 00:50, 9F

10/25 00:50, , 10F
我只有節錄有問題的部分
10/25 00:50, 10F

10/25 00:51, , 11F
太長的話就請利用置底文的網址來貼程式
10/25 00:51, 11F

10/25 00:51, , 12F
這不是完整的code
10/25 00:51, 12F

10/25 00:52, , 13F
你還真堅持 重點就是有問題的不是這部份啊= =||
10/25 00:52, 13F

10/25 00:53, , 14F
不要只貼error指到的部份, 因為更常發生在它的前面或後
10/25 00:53, 14F

10/25 00:53, , 15F
面有錯(尤其是前面), 所以compiler在它指到錯誤的那行認
10/25 00:53, 15F

10/25 00:53, , 16F
為它預期要有什麼符號在那而它卻沒看到, 這就是你的錯誤
10/25 00:53, 16F

10/25 00:54, , 17F
訊息所指. 這邊的code雖然if後的;可能造成程式結果不對,
10/25 00:54, 17F

10/25 00:55, , 18F
但是沒有會讓compiler抱怨的文法錯誤, 所以不貼出其他部
10/25 00:55, 18F

10/25 00:55, , 19F
份, 沒有人有辦法幫你解決你的問題....
10/25 00:55, 19F

10/25 00:56, , 20F
http://nopaste.csie.org/0713d是原本的程式碼
10/25 00:56, 20F

10/25 00:56, , 21F
其實是很簡單的程式
10/25 00:56, 21F

10/25 00:56, , 22F
但是我找不出其他的錯誤
10/25 00:56, 22F

10/25 00:58, , 23F
max function換個名字看看, 有可能是發生同名衝突了.
10/25 00:58, 23F

10/25 00:59, , 24F
原po的main少了一個大括號
10/25 00:59, 24F

10/25 01:00, , 25F
} <= 這種
10/25 01:00, 25F

10/25 01:01, , 26F
我錯了, main少了尾括才對....Orz
10/25 01:01, 26F

10/25 01:01, , 27F
啊, 被j大搶先了XD
10/25 01:01, 27F

10/25 01:02, , 28F
感謝Code::Blocks的自動排版功能 XD
10/25 01:02, 28F

10/25 01:03, , 29F
看起來應該是程式結束之前應該補個 } 才對@_@"
10/25 01:03, 29F

10/25 01:03, , 30F
我剛開VC還在想要去哪裡找這個功能Orz
10/25 01:03, 30F

10/25 01:04, , 31F
VC的自動排版我也不知道耶 誰能跟我講一下 XDDD
10/25 01:04, 31F

10/25 01:05, , 32F
Edit->Advance->Format Selection??
10/25 01:05, 32F

10/25 01:10, , 33F
VC自動排版: 全選後,ALT + F8
10/25 01:10, 33F

10/25 01:13, , 34F
哦哦,感謝樓上與樓樓上 XDDD
10/25 01:13, 34F

10/25 01:20, , 35F
C::B版-http://james803.pixnet.net/blog/post/19839134
10/25 01:20, 35F

10/25 01:26, , 36F
推上面連結實用 :) 其實像notepad++就會把成對的括號
10/25 01:26, 36F

10/25 01:27, , 37F
標記深一點的顏色, 比較好抓這類的問題, 不過最好還是
10/25 01:27, 37F

10/25 01:27, , 38F
養成先把 {} 一次打好, 再往裡面塞東西的好習慣, 不然
10/25 01:27, 38F

10/25 01:28, , 39F
假如程式碼大小沒有管理好, 一個括號就找得半死不活了
10/25 01:28, 39F

10/25 01:30, , 40F
話說原po不見了 XD
10/25 01:30, 40F

10/25 01:30, , 41F
http://ppt.cc/s!L- 我常用的vs快捷鍵 XD
10/25 01:30, 41F

10/25 01:32, , 42F
話說 Visual Assist X 真的可避免這些問題..
10/25 01:32, 42F

10/25 01:36, , 43F
我都是用手動...反白+tab自己縮 > <
10/25 01:36, 43F

10/25 01:36, , 44F
Visual Assist X 真的太作弊了 會變懶 XDDDDD
10/25 01:36, 44F

10/25 01:36, , 45F
不過手刻 MFC 的時候會覺得 Visual Assist X 超好用
10/25 01:36, 45F

10/25 01:37, , 46F
@_@ 這感覺好作弊喔...
10/25 01:37, 46F

10/25 01:49, , 47F
就是while-loop沒有end 如果有開`顯示對稱括號`就沒這問題
10/25 01:49, 47F

10/25 02:13, , 48F
ctrl + ] 可檢查 ()<>{} 匹配狀態
10/25 02:13, 48F

10/25 13:58, , 49F
現在沒有VAX,我都不會寫程式了 Orz
10/25 13:58, 49F

10/25 15:13, , 50F
真的差那麼多唷! 趕快來試用看看 XD
10/25 15:13, 50F

10/25 17:41, , 51F
感謝版友們的回答:D
10/25 17:41, 51F
文章代碼(AID): #1Cn66kdk (C_and_CPP)