我遇到了指針問題,我剛剛開始學習,所以對我的一個錯誤的任何幫助都會很棒。這是一個猜謎遊戲,用戶必須猜測1到1000之間的隨機數。prog.c:42:27:錯誤:調用的對象類型'int'不是函數或函數指針
#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();
}
}
'again'不是一個函數,你想用'again()'做什麼?你的意思是再'1()'? – zneak
'int again;'不是函數原型(靠近頂部)。另外,'int again1()'中沒有返回值。 –