Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #3
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Trento
    Messaggi
    13
    Quote Originariamente inviata da Klibion Visualizza il messaggio
    codice:
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            int []array={5,3,7,7,3,10,5}; 
            int numero=2;
    
    
            
            System.out.print ("presente una sola volta:");
            System.out.println(primaOccorrenza(array,numero));
    
    
        }
        
        public static boolean primaOccorrenza (int[]a, int pos){
            
            boolean primaOcc=false;
            
            for (int i=0; i<a[pos-1]; i++){
              if (a[i]!=a[pos]){
                  primaOcc=true;
              }
            } primaOcc=false;
            return primaOcc;
         } 
    }
    Nella tua funzione verifichi una condizione (giusto), ma SEMPRE imposti primaOcc= false poich� la metti alla fine della tua funzione appena prima del return, (dovresti inserirla in un else dentro il for)

    Cosa succede se a numero dai il valore di 0??? ----> ti genera un errore!!!!

    Sotto trovi una mia versione funzionante, e commentata, ma puoi fare benissimo a meno

    P.S. la mia versione la puoi anche modificare (in caso dovessi dire dove si trova la prima occorrenza del valore contenuto in a[pos]) ti basterebbe aggiungere un paio di righe!!!!!
    codice:
    public class test {
        public static void main(String[] args) {
    // TODO Auto-generated method stub
    
            int []array={7,8,10,7,3,10,5};
            int numero=0;
    
            System.out.println("Pima Occorenza,[dell'elemetnto con idice " + numero+"]:"+ primaOccorrenza(array,numero));
        }
    
        public static boolean primaOccorrenza (int[]a, int pos){
    
            boolean primaOcc=false;
            //Condizioni dove a priori primaOcc risulta false ed e inutile
            //fare controlli sull'array
            if ((pos >= a.length || pos < 0) || (a==null)){
                primaOcc=false;
            }else {
                //Uso un do while, poiche se entro nell'else almeno una volta devo controllare l'array, inoltre
                //con il do-while posso uscire qualora primaOcc risulti false ed e inutile proseguire nella verifica
                //dell'array
                int i =0;
                do{
                    //Se l'elemento in pos di i e uguale all'elemento in posizione pos AND i risulta minore di pos
                    //è stato trovato un elemento uguale a a[pos] prima di arrivare a all'elemento con indice pos
                    if ((a[i] == a[pos]) && (i<pos)){
                        primaOcc=false;
                    }
                    //altrimenti è la prima occorenza
                    else {
                        primaOcc = true;
                    }
                    i++;
                }while (i<=pos && primaOcc);
            }
            return primaOcc;
        }
    }
    Ultima modifica di megaorso; 26-01-2017 a 20:16

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.