我在使用指针时遇到了麻烦,我刚刚开始学习,所以对我的一个错误的任何帮助都会很棒。这是一个猜谜游戏,用户必须猜测1到1000之间的随机数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//Function Prototypes
int usein (int ran_num);
int usein2 ();
int again;
int main (void)
{
//Declare Variables And Pointer
int again = 1;
int *ranum;
int ranum1, invinp;
//Random Number
srand(time(0));
//To Repeat
do
{
ranum1 = rand() % 1001;
ranum = ranum1;
invinp = usein (ranum);
if (invinp == 1)
{
puts ("Cya");
again = 0;
}
else
again = *again();
这就在上面。
}
while (again ==1);
return 0;
}
/*************************function usein*************************/
int usein (int ran_num)
{
//User Input
int usenum;
int reval = 0;
printf ("Enter a guess.\n");
scanf ("%i", &usenum);
//Invalid Input
while (usenum > 1000 || (usenum < 0 && usenum != -1))
{
printf ("It doesn't work like that... Try a number from 1 to 1000.\n");
scanf ("%i", &usenum);
}
if (usenum == -1)
reval = 1;
else
{
if (usenum > *rand)
{
puts ("Too high. Go down.");
usenum = usein2 ();
if (usenum == -1)
reval = 1;
}
else if (usenum < *rand)
{
puts ("Too low. Go up.");
usenum = usein2 ();
if (usenum == -1)
reval = 1;
}
else if (usenum = *rand)
puts ("Congrats. You guessed correctly!");
}
return reval;
}
/*************************function usein2*************************/
int usein2(int ran_num)
{
//User Input
int usenum;
printf ("Enter a guess.");
scanf ("%i", &usenum);
while (usenum > 1000 || usenum < 0)
{
printf ("Try again dude.");
scanf ("%i", &usenum);
}
return usenum;
}
/*************************function again*************************/
int again1()
{
char question;
printf ("You wanna go again?\n");
getchar ();
question = getchar ();
while (question != 'Y' && question != 'y' && question != 'n' && question != 'N')
{
printf ("Try again.\n");
getchar ();
question = getchar ();
}
}
答案 0 :(得分:1)
int again;
声明一个整数,而不是函数。您在下面实际定义的功能名为again1
。当您尝试从main调用again()
时,它会抱怨您尝试调用的函数不是函数,这是正确的,因为again
是int
。改为呼叫again1
(或者更好的是,给它一个不错的名字)。同时从*
中移除*again()
,没有任何意义,因为没有任何解除引用的内容。 again1
实际上还没有返回 int
,因此这将是下一个需要解决的问题。您的代码中还有其他几个问题会阻止它工作,最明显的是*rand
的所有用法 - 我不知道您希望它做什么,但它不会这样做。