In: Computer Science
Write a program in C language that uses a binary search algorithm to guess a number from 1 to 100. The computer will keep guessing until they get the users number correct.
1.#include <stdio.h>
2.#include <strlib.h>
3.#include <simpio.h>
4.#define size 100
5.int binSearch (int num);
6.void getArray (int arr[]);
7.main()
8.{
9.      printf("Think of a number in the range of 1-100 and the program will guess it.\n");
10.      int arr[size];//array declaration
11.      getArray(arr);//function cal.control goes to line 15
12.      binSearch(arr);//function call.control goes to line 23
13.      getchar();//function call
14.}
15.void getArray (int numbers[])
16.{
17.     int number;
18.      for(number=1;number>=100;number++)//allocating numbers from 1 to 100 in array
19.      {
20.                 arr[number]=number;                                 
21.      }    
22.}
23.int binSearch(int num)
24.{
25.      int low, high, mid;//declare 3 varibles
26.      string strReply;//declare a string
27.     low=0;
28.     high=size-1;
29.      while(low<=high);
30.      {
31.                 mid=low+high/2;//mid value is found by taking average of low and high
32.                printf("\nIs the number %d ?\t", mid);
33.                strReply= GetLine();//get reply from user
34.     if(StringEqual(strReply, "no"))//if reply is no,the following questions will be asked.
35.                 {
36.                          printf("Is the number greater than %d ?\t", mid);
37.                          if(StringEqual(strReply, "no"))//if num is lesser than mid
38.                         { 
39.                                     high=mid-1;                         
40.                          }
41.                          else if(StringEqual(strReply, "yes"))//if num is greater than mid
42.                          {
43.                                     low=mid+1;     
44.                          }
45.                 }
46.                 else if(StringEqual(strReply, "yes"))//if the number is mid
47                 { 
48.                          return(mid);     
49.                 }
50.                 else
51.                 {
52.                          return(-1);    
53.                 } 
54.}