我有一个家庭作业任务,基本上需要用户输入来创建一个高尔夫游戏,询问要打多少个洞,每个洞有多少个标准杆,然后随机生成该人在该洞上获得的内容,然后将其打印出来出。最后,它要求用户再次播放,输入Y或Y代表是,N或N代表否,等等。我的程序中的所有内容都可以正常工作,除非我不能再次播放功能。这里是我的代码,特别是我的主要好戏再次方法:再次玩功能c
int main() {
int holes, par, strokes, count = 1, low, high, go;
char *shotName;
go = 1;
while (go != 0) {
count = 1;
holes = readHoles();
do {
printf("\nHole number: %i\n", count);
par = readPar(holes);
low = 1;
high = par + 5;
strokes = calcStrokes(low, high);
shotName = getName(par, strokes);
printStatement(count, par, strokes, shotName);
count++;
}while (count <= holes);
go = goAgain();
}
return 0;
}
int goAgain() {
char *temp;
printf("\nWould you like to play again(Y/N)? ");
scanf("%s", temp);
while (temp != 'y' || temp != 'Y' || temp != 'n' || temp != 'N') {
printf("\nI am sorry that is invalid -- try again\n");
printf("Would you like to play again(Y/N)? ");
scanf("%c", &temp);
}
if (temp == 'y' || temp == 'Y') {
return 1;
} else {
return 0;
}
}
我猜IM如何使用while循环,使这项工作只是困惑或做while循环。这是有效的,但是当我运行程序并到达必须输入yes或no的点时,我输入的任何内容都会导致程序突然崩溃。我不知道该怎么做。基本上,我希望用户输入一些东西,如果它是肯定的,再次玩整个游戏,如果没有,结束循环,如果它的其他东西,给他们一个错误,并再次提示他们。任何帮助表示赞赏今晚晚上! :/感谢
我想,它仍然不起作用。在运行它崩溃.... – anthony 2012-02-21 00:46:11