作者hankhank5345 (MPower)
看板C_and_CPP
標題[問題] 請各位高手幫個忙
時間Sat May 9 11:11:26 2009
請各位高手幫我檢查一下.謝謝
錯誤:
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
1F:→ MOONRAKER:檢查所有的大括號左右有沒有符合。全部喔!不要偷懶。 05/09 11:21
2F:推 VictorTom:其實就在getSeat()上面; 這故事告訴我們養成成對coding 05/09 11:33
3F:→ VictorTom:習慣的重要性, 有的IDE也可以自動幫你做好這點; 話說回 05/09 11:35
4F:→ VictorTom:來, compile有error先練習看懂error message也很重要:) 05/09 11:36
5F:→ VictorTom:你的問題與答案compiler都說了; 雖然有時候會不太準Orz 05/09 11:38
6F:→ MOONRAKER:……我認為給他自己發現印象會比較深刻………… 05/09 14:37
7F:推 VictorTom:對不起我錯了Orz 只是想說要學會看debug message. @_@" 05/09 15:14
8F:→ VictorTom:善用工具, 以及養成coding的好習慣, 會少花很多時間Orz 05/09 15:15
9F:→ MOONRAKER:XD 我想說,有這個getSeat()的提示,那前後看一看也會 05/09 15:54
10F:→ MOONRAKER:發現的,只是並不在getSeat()本體內 05/09 15:55
11F:推 Killercat:= = 這種貼十個自然後把一堆code貼上BBS的問法, 05/09 16:31
12F:→ Killercat:我只能說你們兩位真是好人 05/09 16:31