I’ve been having some trouble with a guessing game that populates an array with random integers, and then has the user try to guess a number in the array. I believe I have most of it correct, but the program will not go beyond the “Initializing lucky numbers…” print command for me to check whether my functions are working or not. I believe the problem either lies with how I’m passing the array to the functions, or how I’m calling the functions (perhaps in their prototypes?) Any help would be greatly appreciated.
This is my first post, so I apologize if I was unable to correctly include the code. Thank you!
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
/*
This program is a lucky number guessing game. A series of unique, random numbers
will be generated and stored in an array. Users will have up to three chances to
guess a number stored in the array.*/
//Function Prototypes
int fillArray (int,int []);
int searchArray (int, int []);
int printArray (int, int []);
int main(){
const int MAX = 25;
int iArray[MAX]={0};
int count;
printf("Initializing lucky numbers...");
//printf("%d", iArray[0]);
//for(count=0;count<MAX;count++){
//printf("%d ",iArray[count]);
//}//end for loop
fillArray(MAX,iArray);
//ONLY TO CHECK ARRAY CONTENTS
//printf("%d",iArray[0]);
//for(count=0;count<MAX;count++){
// printf("%d ",iArray[count]);
//}//end for loop
//CARRY ON WITH PROGRAM
searchArray(MAX,iArray);
getch();
return 0;
}
//Function Definitions
//Fill Array Function
int fillArray(int max,int Array[]){
int i;
int j;
int uniqueFlag;
int random;
srand(time(NULL));
for(i = 0; i < max; i++) {
/* Assume things are unique... we'll reset this flag if not. */
uniqueFlag = 1;
do {
random = (rand() % 101);
/* This loop checks for uniqueness */
for (j = 0; j < i && uniqueFlag == 1; j++) {
if (Array[j] == random) {
uniqueFlag = 0;
}//end if statement
}//end for loop
} while (uniqueFlag != 1);
Array[i] = random;
}//end while
//ONLY TO CHECK ARRAY CONTENTS
printf("%d",Array[0]);
printf("\n%d\n",Array[1]);
for(i=0;i<max;i++){
printf("%d ",Array[i]);
}//end for
}//end function
//Search Array Function
int searchArray(int max, int Array[]){
int i;
int guessCounter=0;
int iGuess;
do{
printf("Please guess a number between 0 and 100: ");
scanf("%d",&iGuess);
for(i=0;i<max&&guessCounter<3;i++){
if(Array[i] == iGuess){
printf("Correct");
guessCounter = 3;
}//end if
else{
printf("%d is not one of the lucky numbers.\n",iGuess);
guessCounter++;
}//end else
}//end for
}while(guessCounter < 3); //end do-while loop
if(guessCounter==3){
printf("Sorry! You lose!\n");
printArray(max, Array);
}//end if
}//end function
//Print Array Function
int printArray(int max, int Array[]){
int i;
printf("Array contents: ");
for(i=0;i<max;i++){
printf("%d ",Array[i]);
}//end for
}//end function
uniqueFlagneeds to be reset whenever you pick a random number, not just at the start of the outer loop infillArray.