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


Rispondi quotando