构建成功。如果我打开输出窗口,它会显示:
程序以退出代码结束:0
但是我的程序是这样的,如果没有先完成用户输入,做了一些事情,并采取了另一个用户输入,这一切都是不可能的,所有这些都在int main()
中。
int main()
做的第一件事是循环获取p
的输入,直到输入是一个(两个)所需选项。因此,它无法立即退出 - 它会初始化p=0
并且在while
为1或2之前不会退出p
循环。
是否存在一些隐藏错误,使得构建成功而没有实际成功?
int main(){
//vars
while (TRUE){
//play computer or human?
while (!(p == 1 || p == 2)) {
printf("Single player or two player? (1/2): ");
scanf("%d", &p);
}
if (p==1) {
//play computer
}
else {
//snip
}
printf("%s won the game! Play again?", winner);
scanf("%s", playagain);
if (strncmp(playagain,"no",2)==0){
break;
}
}
return 0;
}
答案 0 :(得分:3)
打印出定义为大写TRUE
的内容。我看到一些雄心勃勃但缺乏经验的人用它做了奇怪的事情。您可能甚至没有进入主while
循环。
printf("TRUE is %d\n",TRUE);
如果这不是零,则问题出在其他地方。