Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35

    [c++]eliminazione doppi elementi di un array non ordinato !!!!

    Salve a tutti staff e membri,
    scusate ma non riesco ad eseguire il problema spiegato da titolo,io ho scritto questo codice, ma sembra essere sbagliato, mi potete gentilmente aiutare per favore!!!:
    Codice PHP:
    #include <iostream>
    using namespace std;
    void booblesort(int[],int);
    int eliminadoppione(int [],const int);
    int main () {
    const 
    int csize=9;
       
        
    int c[csize]={1,3,5,6,7,8,9,7,6};
        
    eliminadoppione (ccsize);
        for (
    int aa<csize;a++)
        
    cout<< c[a]<<endl;
        
        
    }
    void booblesort (int c[],int size){
        
    int hold;
        for (
    int pass=1;pass<size-1;pass++)
            for (
    int a=1;a<size-1;a++)
                if (
    c[a]>c[a+1]){
                    
    hold=c[a];
                    
    c[a]=c[a+1];
                    
    c[a+1]=hold;}}
    int eliminadoppione(int b[],const int size){
        
    booblesort (b,size);
        
    int k=1;
        for (
    int a=1;a<size;a++)
            if (
    b[a]!=b[a-1]){
                
    b[k]=b[a];
                
    k++;}
            return 
    k;} 
    il programma mi elimina l'elemento c[3] che è doppio, ma mi stampa:
    Codice PHP:
    1
    3
    5
    6
    7
    8
    9
    8

    dove erro??
    Ultima modifica di enrico92; 05-02-2014 a 05:27 Motivo: dettagli

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    • nel main, nel for a va inizializzato
    • per quanto riguarda il bubblesort, non è totalmente corretto, puoi vedere del pseudocodice su internet o cercare nel forum
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    • nel main, nel for a va inizializzato
    • per quanto riguarda il bubblesort, non è totalmente corretto, puoi vedere del pseudocodice su internet o cercare nel forum
    grazie Scara95, ma il bubblesort a parte il nome è corretto, stampa gli elementi in ordine decrescente, ho provato, poi è identico a quello riportato sul mio libro. Ho aggiunto l'inizializzazione di a nel main, che mi ero scordato, ma ancora ho lo stesso output.
    Ultima modifica di enrico92; 05-02-2014 a 17:46

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35
    ciao ragazzi ho risolto aggiungendo al main una variabile nuova dimensione ed eguagliandola alla funziona, ora funziona perfettamente, ecco il codice corretto:
    Codice PHP:
    #include <iostream>
    using namespace std;
    void bublesort(int[],const int);
    int eliminadoppione(int [], int);
    int main () {
        
    int dim;
    const 
    int csize=9;
    int c[csize]={1,3,5,6,7,8,9,7,6};
        
     
    dim=eliminadoppione (ccsize);
        for (
    int a=0a<dim;a++)
        
    cout<< c[a]<<endl;
        
        
    }
    void bublesort (int c[],const int size){
        
    int hold;
        for (
    int pass=0;pass<size-1;pass++){
            for (
    int a=0;a<size-1;a++){
                if (
    c[a]>c[a+1]){
                    
    hold=c[a];
                    
    c[a]=c[a+1];
                    
    c[a+1]=hold;}}}}
    int eliminadoppione(int b[], int size){
        
    bublesort(bsize);    
        
    int k=1;
        for (
    int a=1;a<size;a++)
            if (
    b[a]!=b[a-1]){
                
    b[k]=b[a];
                
                
    k++;}
            return 
    k;} 
    Ultima modifica di enrico92; 05-02-2014 a 17:38

  5. #5
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da enrico92 Visualizza il messaggio
    ciao ragazzi ho risolto aggiungendo al main una variabile nuova dimensione ed eguagliandola alla funziona, ora funziona perfettamente, ecco il codice corretto:
    E nel frattempo hai cambiato il bubblesort che dicevi essere corretto...
    Comunque nell'ordinamento fa ancora un sacco di controlli inutili.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    35
    a è vero che era scorretto scusa,lo avevo cambiato non appena ho postato il codice nel forum, per quello non me ne accorgevo che pirla.comunque visto che fa tanti controlli inutili, come faccio a renderlo più efficace?

  7. #7
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da enrico92 Visualizza il messaggio
    a è vero che era scorretto scusa,lo avevo cambiato non appena ho postato il codice nel forum, per quello non me ne accorgevo che pirla.comunque visto che fa tanti controlli inutili, come faccio a renderlo più efficace?
    Basta che guardi il pseudocodice in fondo la pagina di wikipedia http://it.wikipedia.org/wiki/Bubblesort
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Tag per questa discussione

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.