Problema compilazione codice

di il
5 risposte

Problema compilazione codice

Sto studiando i puntatori e la memoria dinamica, ho fatto un piccolo codice che che prende un vettore di numeri, li filtra e, in base a dei limti di grandezza imposti come parametri della funzione che filtra,li stampa. Il tutto è gestito da puntatori. Il problema è che quando lo compilo apre la console ma non stampa nulla. Potreste aiutarmi a capire il problema per favore?Grazie in anticipo.

int* filtra(int v[], int num_ele, int minAccettabile, int maxAccettabile, int &filtrati)
{
filtrati = 0;

for(int i=0; i<num_ele;i++)
    if(v[i]>=minAccettabile && v[i]<=maxAccettabile)
       filtrati++;

int* p = new int[filtrati];

for(int i=0, copiati=0; i<num_ele;i++)
  if(v[i]>=minAccettabile && v[i]<=maxAccettabile)
     p[copiati++] = v[i];

return p;

}
int main()
{
  int vettore[] = {6,-78,-59,11,73,-26,77,-92,-12,7,-31,77,84,15};
  int quantiFiltrati=0;
  int* filtrati = filtra(vettore,-14,-10,80,quantiFiltrati);

  for(int i=1; i<quantiFiltrati; i++)
    cout<<filtrati[i]<<" ";

  delete[] filtrati;

   system("pause");
   return 0;
}


5 Risposte

  • Re: Problema compilazione codice

    Credo che il problema sia quando chiami la funzione filtra() dal main: come secondo parametro passi il -14 come num_ele, come può avere -14 elementi un vettore? Ti basta togliere quel meno vicino al 14 xD.
    Sarà stato sicuramente un errore di battitura
  • Re: Problema compilazione codice

    Già grazie mile,uno stupido errore di battitura
  • Re: Problema compilazione codice

    Ho notato un anche altro errore: nel ciclo della funzione main()
    qui:

    for(int i=1; i<quantiFiltrati; i++)

    inizi dal valore 1, così facendo ti esclude il primo numero del vettore (cioè il 6).
    Ricorda che in informatica si inizia a contare dallo 0, quindi la forma corretta è:

    for(int i=0; i<quantiFiltrati; i++)

    Se poi il tuo intento era evitare il primo numero del vettore, come non detto
  • Re: Problema compilazione codice

    Si in effetti hai ragione
  • Re: Problema compilazione codice

    @olegfresi ... sono errori banali, tipici di chi inizia a programmare in C ... ma tu non stai iniziando adesso, anzi ...
Devi accedere o registrarti per scrivere nel forum
5 risposte