Итак, мне сказали создать массив, который будет принимать 10 целых чисел от пользователя, хранить его в массиве и сортировать эти значения, используя сортировку пузырьков указателя в порядке возрастания.Использование распределения динамической памяти
Я считаю, что я успешно сделал это много, но у меня возникли проблемы со второй частью.
«Динамически выделить другой массив из 10 целых чисел. Копировать элементы от первого ко второму, но в обратном порядке (т.е. по убыванию). Отобразить элементы первого и второго массивов в порядке и освободить динамически выделенный массив. "
Я могу отобразить первый массив в порядке, и я знаю, что для освобождения массива вы должны использовать функцию удаления, но я не уверен в том, как построить динамический массив.
* Я не включил функции, так как не считаю, что они необходимы для этой части, но если да, то я также опубликую их.
Заранее благодарим за любые предложения и разъяснения.
#include <iostream>
using namespace std;
void sortArray(int * , int);
void showArray(const int * , int);
int binarySearch(const int *, int, int);
int main(void)
{
int const MAX_NUM = 10;
int numbers [MAX_NUM];
int counter;
int findval;
int index;
char again;
cout<< "Please enter 10 integer values."<< endl;
for(counter=0; counter< MAX_NUM ; counter++)
{
cout << "Enter a value for "<< counter+1 << ": ";
cin >> *(numbers+counter);
}
sortArray(numbers, 10);
cout << endl << "The values in ascending order are: " << endl;
showArray(numbers, 10);
do
{
cout<< endl << "Enter the value you are searching for: ";
cin >> findval;
cout << endl;
index = binarySearch(numbers , MAX_NUM , findval);
// Display the results of the search.
if (index == -1)
cout << "Number was not found." << endl << endl;
else
cout << "Number "<< findval<<" found in position " << index + 1 << endl << endl;
// Does the user want to do this again?
do
{
cout << "Would you like to look up another number? (y/n) ";
cin >> again;
}
while(again != 'y' && again != 'Y' && again != 'n' && again != 'N');
}
while (again == 'Y' || again == 'y');
cout<< endl << "Thank You. Press the return key to continue...";
cin.get();
cin.ignore();
return 0;
}
Вы не динамически ничего не выделяете здесь! Ваш массив в значительной степени ** статически ** выделен 'int numbers [MAX_NUM];' – simpel01
Я знаю, что нет, я не уверен, как построить этот динамический массив с тем, что я уже собрал. –
Необработанные массивы в C++ не являются * динамическими массивами * (при необходимости увеличиваются или уменьшаются), но могут быть распределены динамически (по сути, тег 'dynamic-arrays' неверен для использования для этого вопроса - проверьте описание тегов при вводе). – crashmstr