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;
}