Torna all'indice dei forum

 
Devi avere effettuato il login per poter inviare un messaggio Collegati Registrati
Cerca nei forum:


 






Utilizzo wildcard:
*    corrisponde ogni numero di caratteri
%    corrisponde esattamente un solo carattere

Help for my Java Application!

Nessun tag
UtenteMessaggio

19:24
04/12/2010


Stefa

Rulla

messaggi112

Ultimo aggiornamento messaggio: ore 19:26 – 04/12/2010 | autore: Stefa


Salve a tutti, penso che non ci sia posto migliore di questo per chiedere un aiutino in Java.

 

Il programma che ho fatto deve: " Dato un array di interi restituire le cifre che compaiono più volte all'interno dell'array"

ES: {10,1,45,3,4,8,12}

Risultato: {1} (il numero compare 2 volte tutti gli altri una volta sola)

 

ES2: {0,104,4,3,240,8,64,120,91,158}

Risultato: {0,1,4} (lo "0" , l' "1" ed il "4" compaiono 4 volte all'interno dell'array.)

 

Posto qui il mio lavoro:

public class Main {

    public static void aggF(int v[], int f[]) {

        int temp;

        for (int j = 0; j < v.length; j++) {

            while (v[j] != 0) {

                temp = v[j] % 10;

                v[j] /= 10;

                f[temp]++;

            }

        }

    }

    public static int Max(int f[], int v[]) {

        Main.aggF(v, f);

        int max = 0;

        for (int q = 0; q < f.length; q++) {

            if (f[q] > max) {

                max = f[q];

            }

        }

        return max;

    }

    public static void ContaValori(int f[], int max, int m, int v[]) {

        int temp[];

        temp = new int[m];

        for (int n = 0; n < temp.length; n++) {

            temp[n] = -1;

        }

        for (int h = 0; h < f.length; h++) {

            if (f[h] == max) {

                temp[h] = h;

            }

        }

        for (int u = 0; u < temp.length; u++) {

            if (temp[u] != -1) {

                System.out.print("Risultato: " + temp[u] + " ");

            }

        }

    }

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        Scanner tastiera = new Scanner(System.in);

        int conta;

        int m;

        int maxx;

        int v[], f[];

        f = new int[10];

        for (int i = 0; i < 10; i++) {

            f[i] = 0;

        }

        System.out.println("Numero Elementi?");

        m = tastiera.nextInt();

        v = new int[m];

        for (int k = 0; k < m; k++) {

            System.out.println("Inserire un numero in V:");

            v[k] = tastiera.nextInt();

        }

        Main.aggF(v, f);

        maxx = Main.Max(f, v);

        System.out.println("maxx: " + maxx);

        ContaValori(f, maxx, m, v);

    }

}

 

Il problema sta nella funzione "aggF" che se inserisco da solo come elemento d'array lo "0" non lo conteggia.

Per esempio se inserisco questo vettore: {7,5,104,155} il programma svolge correttamente il suo lavoro se invece inserisco {0,7,5,104,155} il programma non conteggia lo "0" da solo.

Ho provato anche ad inserire nel for:

if (v[j]==0) f[0]++;

ma purtoppo non funzia!

 

Mi rivolgo a voi =)

Grazie in anticipo.

Nessun tag


About the Team 0FF Forum

Orario forum:Europe/Rome

Il più alto numero di utenti in linea: 21

Attualmente online:
6 Ospiti

Sta visualizzando Argomento:
1 Ospite

Statistiche del forum:

Gruppi:3
Forum:11
Argomenti:355
Messaggi: 2212

Utenti attivi:

Sono presenti 166 membri
Hanno partecipato 2 ospiti

E' presente 1 amministratore
E' presente 1 moderatore

I più attivi:

Johnny K@ge – 411
Kovalski – 185
Stefa – 112
DAG – 101
Ikigami – 64
LazyFrog – 61

Nuovi membri:ruru96, demetrioculo, Scout97, Jack Skellington, vio, ash reparto ferramenta

Amministratori:Drake (424 Messaggi)

Moderatori:enon (62 Messaggi)