Элементы массива самопроизвольно изменяются
столкнулся с такой проблемой: Создаю массив и заполняю его рандомными десятью значениями. После этого этот массив никак не изменяю, а использую для создания второго и третьего массива. Но при создании третьего массива первые два элемента заменяются на рандомные значения.
Полный код программы:
#include <iostream>
using namespace std;
int main() {
//Создание и вывод массива на экран
cout << "Input n: ";
int n;
cin >> n;
cout << endl;
int arr[n];
cout << "Your array: ";
for(int i = 0; i < n; i++)
{
arr[i] = rand(); //Заполнение массива размера n случайными числами
cout << arr[i] << ", ";
}
cout << endl; //Вывод элементов массива на экран
//Удаление элементов массива
int N, K;
cout << "Input N and K:" << endl;
cout << "N: ";
cin >> N;
cout << endl;
cout << "K: ";
cin >> K;
cout << endl;
int arr2[n - N];
for(int i = 0; i <= K; i++) // Добавление в новый массив элементов до К
{
arr2[i] = arr[i];
}
for(int i = K; i < n; i++) //Добавление во второй массив элементов после N+K
{
arr2[i]=arr[i + N];
}
cout << "Your new array: ";
for(int i = 0; i < n-N; i++) //Вывод нового массива на экран
{
cout << arr2[i] << ", ";
}
cout << endl;
//Добавление элементов в массив
int arr3[n + K];
for(int i = 0; i < K; i++) //Генерация первых К элементов
{
arr3[i] = rand();
}
for(int i = 0; i < n; i++) //Заполнение оставшихся элеменов элементами оригинального массива
{
arr3[i+ K] = arr[i];
}
cout << "Your third array: "; //Вывод третьего массива
for(int i = 0; i < n+K; i++)
{
cout << arr3[i] << ", ";
}
return 0;
}
Частный случай вывода:
Изначально:
1804289383
846930886
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421
В итоге:
1774867093
21894
1681692777
1714636915
1957747793
424238335
719885386
1649760492
596516649
1189641421
Ответы (1 шт):
Автор решения: lstchk
→ Ссылка
Как указали в комментариях, нужно иначе объявить массив, тогда все работает правильно. Не
int arr[n];
,a
int *arr = new int[n];