Salve ragazzi,
premetto che sono nuovo nel forum e che mi sono iscritto per chiedere un consiglio su un problema che mi affligge da stamattina.
Sto svolgendo degli esercizi in C++ per prepararmi all'esame che dovr� dare in questo mese e precisamente devo scrivere un programma che legge un array di interi e, se contiene numeri compresi nel range -50/50 li deve dare in output nello stesso ordine in cui appaiono nell'array.
Nel caso in cui nell'array non ci fossero i numeri interessati, dovrebbe stampare "VUOTO".
Mi sono organizzato cos�: ho dichiarato due array, uno che memorizza la sequenza completa da input, e uno che memorizza solo i valori interessati. In pi� ho dichiarato una variabile booleana inizializzata inizialmente a false, che diventer� true quando si incontra un numero interessato. Il programma termina con un if/else, e se la bool � true stamper� i numeri, altrimenti "VUOTO".
Il problema � che la variabile sembra non volersi muovere dal valore iniziale false e di conseguenza stamper� sempre "VUOTO".
Non so perché ma ho la convinzione che l'errore che ho fatto è banalissimo
Vi prego di aiutarmi e di spiegarmi l'errore. Grazie in anticipo.

codice:
#include <iostream>
using namespace std;


const int dim = 10;
int* array = new int[dim];
int* array1 = new int[dim];
bool X = false;


void leggiArray(int array[], const int dim)
{
 for(int i=0; i<dim; i++)
    {
      cin >> array[i];
    }
}


void copiaElementi(int array[], int array1[], const int dim, bool X)
{
 for(int j=0; j<dim; j++)
    {
      if(array[j] < -50 || array[j] > 50)
         {            
        X = true;
        array1[j] = array[j];
         }
      else
            continue;
    }
 delete [] array;
}


void stampaArray(int array1[])
{
 for(int z=0; z<dim; z++)
    {
     if(array1[z] != 0)
        cout << array1[z];
     else
        continue;
    }
}


int main()
{
 leggiArray(array,dim);
 copiaElementi(array,array1,dim,X);
 if(X == true)
    stampaArray(array1);
 else
    cout << "VUOTO";


 return 0;
}