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;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.