Массив С++ выводит мусор
Имеется задача: в массиве А найти те элементы, которые делятся на 2 с остатком и занести их в новый массив. Думаю сделать с помощью динамического массива, но при выводе выводятся те элементы, которые делятся с остатком, но также и "мусор".
Как это побороть? Если count вставить в размерность динамического массива и цикл, то возникают ошибки.. Уже не знаю, как решить эту элементарную задачу.
using namespace std;
int main()
{
int array[5] = { 1, 2, 3, 4, 5 };
int count = 0;
for (int i = 0; i < 5; i++)
{
if (array[i] % 2 != 0)
count++;
}
int* newarr = new int[5];
for (int i = 0; i < 5; i++)
{
if (array[i] % 2 != 0)
newarr[i] = array[i];
}
for (int i = 0; i < 5; i++)
{
cout << newarr[i] << " ";
}
}```
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Ну что хотели - то и получили - заполнили некоторые из мусорных значений числами...
Если уж так хочется ч отдельным массивом (зачем?!!), то
int* newarr = new int[count];
for (int j = 0, i = 0; i < 5; i++)
if (array[i] % 2 != 0)
newarr[j++] = array[i];
for (int i = 0; i < count; i++)
cout << newarr[i] << " ";