Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Program works with arrays using pointers to reference elements instead of indexe

ID: 3764795 • Letter: P

Question

Program works with arrays using pointers to reference

elements instead of indexes.

*/

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

    // initialize a 1 dimensional array

    int arr [10]   = {2, 4, 5, 6, 7, 8, 9, 10, 11, 13};

    // pointer that moves thru an array to visit elements

    int *mover,           

        *last;// a pointer to the last element of the array

    int n;    // n is a step size for moving thru the array

1

       

    last =

   

    cout << "The array in forward direction is: ";

    // print array in forward direction

    for (mover = arr; mover <= last; mover++)

        cout << *mover << " ";

       

    cout << " The array addresses in forward are: ";

2

    // print the array addresses in forward order

       

    cout << " The array in reverse direction is: ";

3

    // print array in reverse direction

    cout << " Every second element of the array is: ";

4

    // print every second element of the array

    cout << " Enter an array step: ";

    cin >> n;

    cout << " Every nth element of the array is: ";

5

    // print every nth element of the array

   

    cout << " ";

   

    return 0;

}

Make the following changes to your program at the indicated spots (you should not use indexes anywhere in the program, only pointers):

1.Assign the address of the last element of the array to last.

2.Add code that prints the addresses of the array elements separated by spaces.

3.Add code that prints the values in the array in reverse order.

4.Add code that prints the every second value of the array.

5.Add code that prints every nth value of the array (where n is given by the user).

PROGRAM.CPP

1

Explanation / Answer

/*

Program works with arrays using pointers to reference

elements instead of indexes.

*/

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

// initialize a 1 dimensional array

int arr [10] = {2, 4, 5, 6, 7, 8, 9, 10, 11, 13};

// pointer that moves thru an array to visit elements

int *mover,

*last; // a pointer to the last element of the array

int n; // n is a step size for moving thru the array

  

last = arr+9;

  

cout << "The array in forward direction is: ";

// print array in forward direction

for (mover = arr; mover <= last; mover++)

cout << *mover << " ";

  

cout << " The array addresses in forward are: ";

// print the array addresses in forward order

for(mover = arr;mover<=last;mover++)

cout << mover << " ";

  

cout << " The array in reverse direction is: ";

// print array in reverse direction

for (mover = last; mover >= arr; mover--)

cout << *mover << " ";

  

cout << " Every second element of the array is: ";

// print every second element of the array

for(mover=arr+1;mover<=last;mover = mover+2)

cout << *mover << " ";

  

cout << " Enter an array step: ";

cin >> n;

cout << " Every nth element of the array is: ";

// print every nth element of the array

for(mover=arr+(n-1);mover<=last;mover = mover+n)

cout << *mover << " ";

cout << " ";

  

return 0;

}