我在第34行收到一个错误,说“在'void'之前有一个”预期的表达式“(或int,如果我更改了函数类型,我不确定它应该是什么)。我不知道如何解决这个问题。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Declare Function Prototypes
void PlayingDice(void);
void GuessNumber(void);
int main (void)
{
// Loop so games can be replayed
do
{
// Introducing Games
int game, UserGuessDice, UserGuessNumber, die1, die2, sum, number;
printf("Do you want to (1) play dice, (2) guess the number, or (3) exit program?\n");
scanf("%d", &game);
printf("You have selected %d.\n", game);
if (game==1)
{
// Calls Playing Dice Game
printf("%d", void PlayingDice(void));
}
else if (game==2)
{
// Calls Guess Number Game
printf("%d", void GuessNumber(void));
}
else
{
// In case user enters invalid option
printf("That wasn't an option!\n");
}
}
while (game != 3);
// End Program
printf("Good bye.\n");
return (0);
}
答案 0 :(得分:3)
这里有几个问题。这是其中之一:
printf("%d", void PlayingDice(void));
在这里,您将第二个参数传递给printf
值void PlayingDice(void)
。但是,这不是一个价值。 void PlayingDice(void)
是一个函数原型,它说“有一些函数叫PlayingDice
,什么都不带,什么都不返回。”这根本不是一个价值。你可能想做这样的事情:
printf("%d", PlayingDice());
这实际上调用PlayingDice
并获取返回值。但是, too 是有问题的,因为函数返回void
。您可能想要确定是否希望此函数返回任何内容。如果是,则返回类型int
。如果没有,请完全删除printf
。
同样,这条线是合法的,但几乎肯定不是你想要的:
// Returns function to main
return main();
不将函数返回到main
。相反,它再次调用main
,等待main
返回一个值,然后返回main
生成的值。如果要返回main
,只需删除此语句即可。它没有做任何事情。
希望这有帮助!