Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    trovare elementi array identici

    Ciao,
    come da oggetto
    volevo chiedere come si fa, quindi, a fare la scansione di un array
    ad esempio di interi (ma anche di caratteri o nomi) per trovare e restituire
    i numeri massimi identici (es: un array composto da 2,5,6,7,8,1,4,8 deve restituire
    e visualizzare 8 e 8; una stringa di nomi: ciccio, gino, pino, gino deve restituire gino e gino);
    e, in generale come si fa a trovare elementi identicidi un array.
    ciao e grazie

  2. #2
    dire in che linguaggio pareva male?

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    A prescindere dal linguaggio puoi fare in mille modi....ad esempio molto semplicemente prendere uno ad uno gli elementi del'array e confrontarli con i successivi, quando trovi la corrispondenza stampi l'elemento che stai confrontando.
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    Originariamente inviato da Xadoom
    A prescindere dal linguaggio puoi fare in mille modi....ad esempio molto semplicemente prendere uno ad uno gli elementi del'array e confrontarli con i successivi, quando trovi la corrispondenza stampi l'elemento che stai confrontando.

    il linguaggio è il c++ 8dimentico sempre di specificarlo!!)

    sono un neofita e non so come fare precisamente
    almeno un esempio.
    Grazieo

  5. #5
    Ti stendo un piccolo codice commentato:

    codice:
    #include <iostream.h>
    
    void main (void) {
            int i, maggiore, j = 1; /* maggiore = il numero maggiore */ 
            int array[] = { 2, 5, 6, 7, 8, 1, 4, 8 };
            maggiore = array[0]; /* per adesso il numero maggiore è il primo elemento del array */ 
            for (i = 1; i < 8; i++) { /* scansione */
                    if (array[i] == maggiore) /* se trovo un altro numero uguale al maggiore */
                            j++; /* incremento il contatore */
                    if (array[i] > maggiore) { /* altrimenti se trovo un numero maggiore del maggiore */
                            maggiore = array[i]; /* setto il nuovo numero maggiore */
                            j = 1; /* siccome ho messo un numero nuovo, risetto il contatore j a 1 */
                    }
            }
            for (i = 0; i < j; i++)
                    cout << maggiore << " "; /* visualizzo per j volte il numero maggiore */
            cout << endl;
    }
    Ciao, se non capisci posta pure!

  6. #6
    Originariamente inviato da lucas726

    il linguaggio è il c++ (dimentico sempre di specificarlo!!)
    questa volta lo aggiungo io (al titolo)
    la prossima volta ricordati di specificarlo
    ...Terrible warlords, good warlords, and an english song

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    ok ragazzi, grazie!!
    vedo con calma il codice e vi faccio sapere.
    Forse ho bisogno di modifiche.
    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    ok grazie Michele Facchin
    avevo scritto anche io un codice molto simile.
    Adesso però mi intereserebbe sapere come trovare solo elementi identici che non siano per forza i massimi es:
    [2,3,4,2,7,9,12,7, 2, 23,9,31]

    il codice deve trovare e visualizzare tutti i 2 e i 9

    e in un stringa del tipo: gino, pino, gino, andrea, pino
    come si fa a trovare gli elementi identici?
    grazie

  9. #9
    Ecco signore:
    codice:
    #include <iostream.h>
    
    void main (void) {
            int i, j, t, c;
            int array[] = { 2, 3, 4, 2, 7, 9, 12, 7, 2, 23, 9, 31 };
            i = 12;
            /* ordino il vettore con un Sort mooolto noto :P */
            do {
                    t = 0;
                    for (j = 0; j < i; j++)
                            if (array[j] >= array[j + 1]) {
                                    t = 1;
                                    c = array[j];
                                    array[j] = array[j + 1];
                                    array[j + 1] = c;
                            }       
                    i--;
            } while (t);
            /* fine ordinamento */
            for (i = 0; i < 12; i++)
                    if (array[i] == array[i + 1]) {
                            cout << array[i] << " ";
                            while (array[i] == array[i + 1]) /* per non ripetere */
                                    i++;                    
                    }
            cout << endl;
            return (0);
    }
    PS: c'è anche il 7 di doppio.

    Controlla! Ciao :gren:

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    accidenti!!
    quanto sei veloce!!
    grazie, adesso me lo studio per bene.
    ciao

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 © 2024 vBulletin Solutions, Inc. All rights reserved.