Return 1 if ptr points to an element within the specified intArray, 0 otherwise.
* Pointing anywhere in the array is fair game, ptr does not have to
* point to the beginning of an element. Check the spec for examples if you are
* confused about what this method is determining.
* size is the size of intArray in number of ints. Can assume size != 0.
* Operators / and % and loops are NOT allowed.
** ALLOWED:
* Pointer operators: *, &
* Binary integer operators: -, +, *, <<, >>, ==, ^
* Unary integer operators: !, ~
* Shorthand operators based on the above: ex. <<=, *=, ++, --, etc.
** DISALLOWED:
* Pointer operators: [] (Array Indexing Operator)
* Binary integer operators: &, &&, |, ||, <, >, !=, /, %
* Unary integer operators: -
*/
int withinArray(int * intArray, int size, int * ptr) {

Respuesta :

Answer:

int withinArray(int * intArray, int size, int * ptr) {

      if(ptr == NULL) // if ptr == NULL return 0

            return 0;

      // if end of intArr is reached

      if(size == 0)

          return 0; // element not found

  else  

          {

            if(*(intArray+size-1) == *(ptr)) // check if (size-1)th element is equal to ptr

                   return 1; // return 1

            return withinArray(intArray, size-1,ptr); // recursively call the function with size-1 elements

         }

}

Explanation:

Above is the completion of the program.

ACCESS MORE