我之前的第一个C++程序(这个)遇到了一些问题.基本上我正在尝试为C++课程做一个任务,教授告诉我们没有语法.这是我现在的代码:
#include#include #include #include using namespace std; class Race { public: void main() { executeRace(); int randomMove() { srand(time(NULL)); int randomInt = rand() % 100 + 1; return randomInt; } void executeRace() { int rabbitPosition = 1; int turtlePosition = 1; cout << "BANG!!!" << endl << "AND THEY'RE OFF!!!"; while (rabbitPosition <=70 && turtlePosition <=70) { printPositions(rabbitPosition, turtlePosition); turtlePosition = turtleMoveSquares(turtlePosition); rabbitPosition = rabbitMoveSquares(rabbitPosition); } printWinner(rabbitPosition, turtlePosition); tie(rabbitPosition, turtlePosition); } int turtleMoveSquares(int tPosition) { int turtleMove = randomMove(); if(turtleMove >=1 && turtleMove <= 40) tPosition = tPosition + 4; if(turtleMove >= 41 && turtleMove <= 50 ) tPosition = tPosition - 2; if(turtleMove >=51 && turtleMove <=100) tPosition = tPosition + 2; if(tPosition < 1) tPosition = 1; return tPosition; } int rabbitMoveSquares(int rabbitPosition) { int rabbitMove = randomMove(); if(rabbitMove >=1 && rabbitMove <= 25) rabbitPosition = rabbitPosition; if(rabbitMove >=26 && rabbitMove <= 55) rabbitPosition = rabbitPosition + 10; if(rabbitMove >=56 && rabbitMove <=60) rabbitPosition = rabbitPosition - 15; if(rabbitMove >=61 && rabbitMove <= 90) rabbitPosition = rabbitPosition + 5; if(rabbitMove >=90 && rabbitMove <=100) rabbitPosition = rabbitPosition - 3; if(rabbitPosition < 1) rabbitPosition = 1; return rabbitPosition; } void printPositions(int rabbitPositions, int turtlePositions) { int turtleCount; int rabbitCount; int endCount; if(rabbitPositions == turtlePositions && rabbitPositions != 1) { turtleCount = 1; while(turtleCount < turtlePositions) { cout << "-"; turtleCount = turtleCount+1; } cout << "OUCH!"; } else { turtleCount = 1; rabbitCount = 1; endCount=1; if(turtlePositions < rabbitPositions) { while(turtleCount < turtlePositions) { cout << "-"; turtleCount = turtleCount+1; } cout << "T"; while(rabbitCount < (rabbitPositions - turtlePositions)) { cout << "-"; rabbitCount = rabbitCount+1; } cout << "H"; } if(rabbitPositions < turtlePositions) { while(rabbitCount < rabbitPositions) { cout << "-"; rabbitCount = rabbitCount+1; } cout << "H"; while(turtleCount < (turtlePositions - rabbitPositions)) { cout << "-"; turtleCount = turtleCount+1; } cout << "T"; cout << "\n"; } } } void printWinner(int rabbitPosition, int turtlePosition) { if(turtlePosition >= 70 && rabbitPosition < 70) { cout << "TORTOISE WINS!!! YAY!!!\n"; } else if(rabbitPosition >=70 && turtlePosition < 70) { cout << "Hare wins. Yuch.\n"; } else if(rabbitPosition >=70 && turtlePosition >=70) { cout << "It's a tie\n"; } } void tie(int turtlePosition, int rabbitPosition) { if(rabbitPosition >=70 && turtlePosition >=70) executeRace(); } } }; int main() { Race race; race.main(); return EXIT_SUCCESS; }
这是我编译时的错误:
uxb3% g++ o- Race Race.cc g++: o-: No such file or directory g++: Race: No such file or directory Race.cc: In member function 'void Race::main()': Race.cc:14: error: 'executeRace' was not declared in this scope Race.cc:17: error: a function-definition is not allowed here before '{' token Race.cc:24: error: a function-definition is not allowed here before '{' token Race.cc:44: error: a function-definition is not allowed here before '{' token Race.cc:64: error: a function-definition is not allowed here before '{' token Race.cc:90: error: a function-definition is not allowed here before '{' token Race.cc:153: error: a function-definition is not allowed here before '{' token Race.cc:169: error: a function-definition is not allowed here before '{' token
很抱歉继续打扰你们这项任务,但这是我的第一次,而且我非常,非常沮丧和痴迷.
您的功能*中不能包含功能.
你可能想要这个:
#include#include #include #include using namespace std; class Race { public: int randomMove() { srand(time(NULL)); int randomInt = rand() % 100 + 1; return randomInt; } void executeRace() { int rabbitPosition = 1; int turtlePosition = 1; cout << "BANG!!!" << endl << "AND THEY'RE OFF!!!"; while (rabbitPosition <=70 && turtlePosition <=70) { printPositions(rabbitPosition, turtlePosition); turtlePosition = turtleMoveSquares(turtlePosition); rabbitPosition = rabbitMoveSquares(rabbitPosition); } printWinner(rabbitPosition, turtlePosition); tie(rabbitPosition, turtlePosition); } int turtleMoveSquares(int tPosition) { int turtleMove = randomMove(); if(turtleMove >=1 && turtleMove <= 40) tPosition = tPosition + 4; if(turtleMove >= 41 && turtleMove <= 50 ) tPosition = tPosition - 2; if(turtleMove >=51 && turtleMove <=100) tPosition = tPosition + 2; if(tPosition < 1) tPosition = 1; return tPosition; } int rabbitMoveSquares(int rabbitPosition) { int rabbitMove = randomMove(); if(rabbitMove >=1 && rabbitMove <= 25) rabbitPosition = rabbitPosition; if(rabbitMove >=26 && rabbitMove <= 55) rabbitPosition = rabbitPosition + 10; if(rabbitMove >=56 && rabbitMove <=60) rabbitPosition = rabbitPosition - 15; if(rabbitMove >=61 && rabbitMove <= 90) rabbitPosition = rabbitPosition + 5; if(rabbitMove >=90 && rabbitMove <=100) rabbitPosition = rabbitPosition - 3; if(rabbitPosition < 1) rabbitPosition = 1; return rabbitPosition; } void printPositions(int rabbitPositions, int turtlePositions) { int turtleCount; int rabbitCount; int endCount; if(rabbitPositions == turtlePositions && rabbitPositions != 1) { turtleCount = 1; while(turtleCount < turtlePositions) { cout << "-"; turtleCount = turtleCount+1; } cout << "OUCH!"; } else { turtleCount = 1; rabbitCount = 1; endCount=1; if(turtlePositions < rabbitPositions) { while(turtleCount < turtlePositions) { cout << "-"; turtleCount = turtleCount+1; } cout << "T"; while(rabbitCount < (rabbitPositions - turtlePositions)) { cout << "-"; rabbitCount = rabbitCount+1; } cout << "H"; } if(rabbitPositions < turtlePositions) { while(rabbitCount < rabbitPositions) { cout << "-"; rabbitCount = rabbitCount+1; } cout << "H"; while(turtleCount < (turtlePositions - rabbitPositions)) { cout << "-"; turtleCount = turtleCount+1; } cout << "T"; cout << "\n"; } } } void printWinner(int rabbitPosition, int turtlePosition) { if(turtlePosition >= 70 && rabbitPosition < 70) { cout << "TORTOISE WINS!!! YAY!!!\n"; } else if(rabbitPosition >=70 && turtlePosition < 70) { cout << "Hare wins. Yuch.\n"; } else if(rabbitPosition >=70 && turtlePosition >=70) { cout << "It's a tie\n"; } } void tie(int turtlePosition, int rabbitPosition) { if(rabbitPosition >=70 && turtlePosition >=70) executeRace(); } }; int main() { Race race; race.executeRace(); return EXIT_SUCCESS; }
*当然,除非处理更高级的语言,例如微积分!