i am making a guess game.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void operation(int magicNumber, int guessnumber);
void getNumber(int *try, int *yourguess, int *magicNum);
int getMagicNumber(void);
int main(void) {
int guessnumber = 0;
int numberOfTry = 1;
int magicNumber = 0;
magicNumber = getMagicNumber();
printf("magic number is %d\n", magicNumber); // for test purpose only
getNumber(&numberOfTry, &guessnumber, &magicNumber);
system("PAUSE");
return 0;
}
int getMagicNumber(void) {
int number;
srand(time(NULL));
number = (1 + rand()%20);
return number;
}
void getNumber(int *try, int *yourguess, int *magicNum){
printf("\nI am thinking of a number between 1 and 20.\n");
if (*try > 5)
printf ("You heave tried 5 times. The magic number is: %d\n", *magicNum);
else
scanf ("Can you guess what it is?\n", yourguess);
int x = *yourguess;
printf("your guess number is %d\n", x);
printf("Your guess number is %d. \n", *yourguess);
*try = *try + 1;
printf("\nYou have tried %d time(s).", *try);
// you don't put asterisk in front of the argument because they are already address.
// so you just pass them as address. Operation's paramter accept variable address.
operation(*magicNum, *yourguess);
}
void operation(int magicNumber, int guessnumber) {
if (magicNumber > guessnumber)
printf ("\nYour guess number is greater than magic number\n");
else if (magicNumber < guessnumber)
printf ("\nYour guess number is less than magic number\n");
else
printf ("\nCongradulation. You win the guess game with the magic number %d.\n", magicNumber);
}
magic number is 8
I am thinking of a number between 1 and 20.
2
your guess number is 0
Your guess number is 0.
You have tried 2 time(s).
Your guess number is greater than magic number
When i enter 2, value isn't assigned to the variable in main method. I don't know why the pointer is failed.