Asked by Cheryl
int *reverse(const int *, int);
int *temp;
temp = reverse(arr1,N);
int *reverse(const int *arr1, int N)
{
int *arr2;
arr2 = new int[N];
for(int count = 0; count < N;
count++)
{
for(int index = (N-1); index <=
0; index--)
arr2[count] = arr2[index];
}
return arr2;
}
I need to return a pointer but I am returning junk, I got the algorithm from the textbook.
int *temp;
temp = reverse(arr1,N);
int *reverse(const int *arr1, int N)
{
int *arr2;
arr2 = new int[N];
for(int count = 0; count < N;
count++)
{
for(int index = (N-1); index <=
0; index--)
arr2[count] = arr2[index];
}
return arr2;
}
I need to return a pointer but I am returning junk, I got the algorithm from the textbook.
Answers
Answered by
MathMate
You may need to "malloc" instead of just "new", which is an automatic variable that disappears when you quit the method.
Post again if that still does not work.
Post again if that still does not work.
Answered by
MathMate
Or perhaps, arr2 contains garbage to start. It was never initialized, so there is nothing to reverse.
What does arr1 do? Is it supposed to be an array that you are reversing?
What does arr1 do? Is it supposed to be an array that you are reversing?
Answered by
Cheryl
K I have gotten it to work in visual c++ by getting rid of the inner loop but it doesn't work on myprogramminglab so I don't know what else to do. The problem was extensive as well as the entire program, it works up until this function.
Answered by
Cheryl
whole problem, whole program sorry...
9.10: Reverse Array
Write a function that accepts an int array and the array’s size as arguments. The function should create a copy of the array, except that the element values should be reversed in the copy. The function should return a pointer to the new array. Demonstrate the function by using it in a main program that reads an integer N (that is not more than 50) from standard input and then reads N integers from a file named data into an array. The program then passes the array to the your reverse array function, and prints the values of the new reversed array on standard output, one value per line. You may assume that the file data has at least N values.
Prompts And Output Labels. There are no prompts for the integer and no labels for the reversed array that is printed out.
Input Validation. If the integer read in from standard input exceeds 50 or is less than 0 the program terminates silently.
#include<iostream>
#include<fstream>
using namespace std;
int *reverse(const int *, int);
int main()
{
int N;
cin >> N;
if(N > 50 || N < 0)
exit(0);
int *arr1 = new int[N], index;
fstream datafile;
datafile.open("data.txt", ios::in | ios::out);
for(index = 0; index < N; index++)
{
datafile >> arr1[index];
}
int *temp;
temp = reverse(arr1,N);
for(index = 0; index < N; index++)
cout << temp[index] << endl;
}
int *reverse(const int *arr1, int N)
{
int index = N-1;
int *arr2;
arr2 = new int[N];
for(int count = 0; count < N; count++)
{
arr2[count] = arr1[index];
index--;
}
return arr2;
}
9.10: Reverse Array
Write a function that accepts an int array and the array’s size as arguments. The function should create a copy of the array, except that the element values should be reversed in the copy. The function should return a pointer to the new array. Demonstrate the function by using it in a main program that reads an integer N (that is not more than 50) from standard input and then reads N integers from a file named data into an array. The program then passes the array to the your reverse array function, and prints the values of the new reversed array on standard output, one value per line. You may assume that the file data has at least N values.
Prompts And Output Labels. There are no prompts for the integer and no labels for the reversed array that is printed out.
Input Validation. If the integer read in from standard input exceeds 50 or is less than 0 the program terminates silently.
#include<iostream>
#include<fstream>
using namespace std;
int *reverse(const int *, int);
int main()
{
int N;
cin >> N;
if(N > 50 || N < 0)
exit(0);
int *arr1 = new int[N], index;
fstream datafile;
datafile.open("data.txt", ios::in | ios::out);
for(index = 0; index < N; index++)
{
datafile >> arr1[index];
}
int *temp;
temp = reverse(arr1,N);
for(index = 0; index < N; index++)
cout << temp[index] << endl;
}
int *reverse(const int *arr1, int N)
{
int index = N-1;
int *arr2;
arr2 = new int[N];
for(int count = 0; count < N; count++)
{
arr2[count] = arr1[index];
index--;
}
return arr2;
}
There are no AI answers yet. The ability to request AI answers is coming soon!
Submit Your Answer
We prioritize human answers over AI answers.
If you are human, and you can answer this question, please submit your answer.