Ricerca elemento.

di il
9 risposte

Ricerca elemento.

Ciao a tutti. Ho un esercizio in C++ che mi chiede di cercare un elemento nell'array e vedere quante volte si ripete consecutivamente.

I dati sono:

Dimensione array: dim_a = 7;
Array a: a[dim_a] = {6,4,3,3,2,7,9};
Un intero x = sarebbe il numero da cercare.(a mia scelta)
Un intero l = sarebbe il numero di volte che l'elemento x si ripete.(a mia scelta).

Vi posto il programma:
http://pastebin.com/Q5n5PGG

L'output è che lo trova sempre..qualsiasi numero e quante volte vuoi !

Dove sbaglio? Grazie mille delle risposte !

9 Risposte

  • Re: Ricerca elemento.

    Metti il codice qui, e non su un altro sito....
  • Re: Ricerca elemento.

    Perchè non si legge? Quello l'ho scritto io..è quello il codice non volevo occupare spazio qui sulla discussione !
    Lo devo mettere?
  • Re: Ricerca elemento.

    É meglio metterlo. Cosi non dobbiamo aprire più pagine per starti dietro. Se il codice lo racchiudi tra i tag code lo spazio occupato sará minimo.
  • Re: Ricerca elemento.

    Okok lo faccio !

    
       
    #include <iostream>
    
    using namespace std;
     
    const int dim_a = 7;
    
    bool array(int a[], int dim_a, int x, int l)
    {
      
                  int contatore = 1;
                  bool trovato = false;
     
                           while(trovato == false)
                           {
     
                                  for(int i = 0; i < dim_a; i++)
     
                                  {
    
                                          if(a[i] == a[i+1])
     
                                          contatore++;
      
                                                  if(contatore == l)
    
                                                  {
    
                                                          trovato = true;
      
                                                          cout <<"Trovato.\n";
    
                                                          return trovato;
     
                                                  }
    
                                  }
      
                          }
     
          if(trovato == false)
    
          cout <<"Non c'è.\n";
    
          return trovato;
    
          }
    
          int main()
    
          {
     
          int a[dim_a] = {6,4,3,3,2,7,9};
    
          int x;
    
          int l;
      
          cout <<"Inserire il numero da cercare.\n";
      
          cin >> x;
    
          cout <<"Quante volte consecutive vuoi cercarlo?\n";
    
          cin >> l;
    
          array(a,dim_a,x,l);
    
          return 0;
    .
          }
    
    
  • Re: Ricerca elemento.

    Ciao Escher
    il fatto che la funzione 'array' non usi il parametro x (che è il valore che deve cercare) è piuttosto sospetto!
  • Re: Ricerca elemento.

    barba59 ha scritto:


    Ciao Escher
    il fatto che la funzione 'array' non usi il parametro x (che è il valore che deve cercare) è piuttosto sospetto!
    Già e poi trovato lo imposti a true solo quando contatore è uguale a 1 (valore iniziale) e il check lo fai dopo un contatore++ (quindi quando fai quel check contatore vale sempre almeno 2)
  • Re: Ricerca elemento.

    Avete proprio ragione ! Ho risolto in questo modo:
    
    #include <iostream>
    
    using namespace std;
    
    const int dim_a = 7;
    
    bool array(int a[], int dim_a, int x, int l)
    {
            int contatore = 1;
            bool trovato = false;
    
    
    
                            for(int i = 0; i < dim_a-1; i++)
                            {
                                    if(x == a[i] && x == a[i+1])
                                    contatore++;
    
                            }
    
    
    if(contatore == l)
    {
            cout <<"Trovato!.\n";
    }
            else{
            cout <<"Non trovato.\n";
            }
    
    return 0;
    
    }
    
    int main()
    {
    
    int  a[dim_a] = {6,4,3,3,2,7,9};
    int x;
    int l;
    cout <<"Inserisci un numero:\n";
    cin >> x;
    cout <<"Quante volte vuoi trovarlo?\n";
    cin >> l;
    
    array(a,dim_a,x,l);
    
    return 0;
    }
    
    
    Grazie dell'aiuto !
  • Re: Ricerca elemento.

    Ciao Escer,
    c' è ancora un erroretto, se usi un array del genere {3,3,2,3,3,7,9} e cerchi se il tre si ripete tre volte consecutive ti risponderà di si pur non essendo vero.

    @skynet
    ciao skynet, nei tag code viene usato un font che rende praticamente identici 1 e l. Sarebbe possibile usare un font più adatto? Il commento di Jam3s82 era sbagliato a causa di questo.
    
    1 l  (il primo è un uno il secondo una elle)
    
  • Re: Ricerca elemento.

    @barba
    Mi sa che è un problema del board. Magari l'amministratore può modificare il font usato ma io no. Problema che si risolve (penso) usando quote invece che code.quote accetta anche la formattazione del testo mentre code no.
    1 l
Devi accedere o registrarti per scrivere nel forum
9 risposte