我正在为uni写一个二十一点程序,有些方法根本就没有被调用。 此菜单方法是assign1.c文件的一部分,其中包含main方法。其他方法在其他.c文件中,但我已经多次检查了我的代码的#include部分,并且它们都是100%正确的。 菜单打印正常,我正确设置为输入,但是当调用适当的if语句时,其中的方法不是。这是代码
编辑:特别是playGame()方法,我理解其他人没有被正确调用,但游戏游戏给了我最大的悲痛。
int mainmenu(){
int i = 0;
int j = 0;
while (j<1) {
printf("\n");
printf("Black Jack - Main Menu\n");
printf("1) Play Game\n");
printf("2) Display Scores\n");
printf("3) Reset Scores\n");
printf("4) Quit\n");
printf("\n" "Make your selection: ");
scanf("%d", &i);
if (i==1) {
Player* playGame(Player *computer, Player *human, Card *deck);
int testmethod();
}
else if (i==2) {
printScoreBoard();
}
else if (i==3) {
resetScores();
}
else if (i==4){
j++;
}
else{
printf("%s\n", "Incorrect input, please try again");
int ch;
/* remove all characters from the buffer */
while(ch = getc(stdin), ch!='\n' && ch!=EOF)
;
/* clear the error status of the input pointer */
clearerr(stdin);
}
}
return 0;
}
如果我调试它只是忽略方法,就好像它们不是可执行代码或其他东西。 任何想法?
答案 0 :(得分:1)
你实际上并没有调用这些函数,你只是声明它们,例如:
if (i==1) {
Player* playGame(Player *computer, Player *human, Card *deck);
int testmethod();
}
应该是:
if (i==1) {
player = playGame(computer, human, deck);
testmethod();
}
(显然player
,computer
,human
,deck
需要先前定义/初始化)