[問題] 請各位高手幫個忙

看板C_and_CPP (C/C++)作者 (MPower)時間16年前 (2009/05/09 11:11), 編輯推噓3(309)
留言12則, 3人參與, 最新討論串1/1
請各位高手幫我檢查一下.謝謝 錯誤: error C2601: 'getSeat' : local function definitions are illegal fatal error C1075: end of file found before the left brace '{' #include <iostream> using namespace std; const int NUMROWS = 7; const int NUMSEATS = 4; void initPlane(char plane[NUMROWS][NUMSEATS]); // POSTCONDITION: // plane[x][0] == 'A', 0<=x<=6 // plane[x][1] == 'B', 0<=x<=6 // plane[x][2] == 'C', 0<=x<=6 // plane[x][3] == 'D', 0<=x<=6 void printPlane(char msg[], char plane[NUMROWS][NUMSEATS]); // POSTCONDITION: The seating layout of the plane has been printed // to the standard output with an X displayed for each taken seat. void getSeat(char &row, char &seat); // POSTCONDITION: 1 <= row <= 7, 'A' <= seat <= 'D' // Note that getSeat does not check to see if the seat has been taken. int main() { int seatsTaken = 0; int seats = NUMROWS * NUMSEATS; char plane[NUMROWS][NUMSEATS]; char keepGoing = 'y'; char row, seat; int rowIndex, seatIndex; initPlane(plane); cout << "Choose your seat!" << endl; while (seatsTaken < seats && keepGoing == 'y') { // // Show layout and get seat choice // printPlane("Plane layout; X designates taken seats", plane); cout << "Enter the row(1-7) and seat(A-D) you would like (e.g., 3D): "; getSeat(row, seat); // // Adjust input to use as indices // rowIndex = row - '1'; seatIndex = seat - 'A'; // // Check to see if seat is taken // if (plane[rowIndex][seatIndex] == 'X') cout << "Sorry, " << row << seat << " is already taken." << endl; else { cout << "OK, you've got " << row << seat << endl; plane[rowIndex][seatIndex] = 'X'; seatsTaken++; } // // If there are seats left, see if we should keep going // if (seatsTaken < seats) { cout << "Choose another seat? (y/n) "; cin >> keepGoing; } else cout << "Plane is now full!" << endl; } printPlane("Final seating chart", plane); } // -------------------------------- // ----- ENTER YOUR CODE HERE ----- // -------------------------------- void initPlane(char plane[NUMROWS][NUMSEATS]) { for (int i=0; i<NUMROWS; i++) { plane[i][0] = 'A'; plane[i][1] = 'B'; plane[i][2] = 'C'; plane[i][3] = 'D'; } } void printPlane(char msg[], char plane[NUMROWS][NUMSEATS]) { cout << msg << endl; for (int i=0; i<NUMROWS; i++) { for (int j=0; j<NUMROWS; j++) cout << plane[i][j] << " "; cout << endl; { } void getSeat(char &row, char &seat) { cin >> row >> seat; while(row > '7' || row < '1' || seat < 'A' || seat > 'D') { cout << "\nInput row number and seat, 1 <= row <= 7, 'A' <= seat <= 'D': "; cin >> row >> seat; } } // -------------------------------- // --------- END USER CODE -------- // -------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.199.79.106

05/09 11:21, , 1F
檢查所有的大括號左右有沒有符合。全部喔!不要偷懶。
05/09 11:21, 1F

05/09 11:33, , 2F
其實就在getSeat()上面; 這故事告訴我們養成成對coding
05/09 11:33, 2F

05/09 11:35, , 3F
習慣的重要性, 有的IDE也可以自動幫你做好這點; 話說回
05/09 11:35, 3F

05/09 11:36, , 4F
來, compile有error先練習看懂error message也很重要:)
05/09 11:36, 4F

05/09 11:38, , 5F
你的問題與答案compiler都說了; 雖然有時候會不太準Orz
05/09 11:38, 5F

05/09 14:37, , 6F
……我認為給他自己發現印象會比較深刻…………
05/09 14:37, 6F

05/09 15:14, , 7F
對不起我錯了Orz 只是想說要學會看debug message. @_@"
05/09 15:14, 7F

05/09 15:15, , 8F
善用工具, 以及養成coding的好習慣, 會少花很多時間Orz
05/09 15:15, 8F

05/09 15:54, , 9F
XD 我想說,有這個getSeat()的提示,那前後看一看也會
05/09 15:54, 9F

05/09 15:55, , 10F
發現的,只是並不在getSeat()本體內
05/09 15:55, 10F

05/09 16:31, , 11F
= = 這種貼十個自然後把一堆code貼上BBS的問法,
05/09 16:31, 11F

05/09 16:31, , 12F
我只能說你們兩位真是好人
05/09 16:31, 12F
文章代碼(AID): #1A1FHV43 (C_and_CPP)
文章代碼(AID): #1A1FHV43 (C_and_CPP)