作者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