[hilfe] doppelte werte aus Array loeschen



  • moin leutz!

    erst ma ich hab kein plan von c/c++
    zweitens bin ich mir net sicher ob das hier das richtige forum is

    waer echt net wenn ihr mir hierbei helfen koenntet

    ich braeucht ein programm das mir:

    - in einem array doppelte werte loscht
    - eingabe ueber printf oder so evtl auch txt datei
    - die entstandenen luecken aufrueckt
    - und am ende die luecken mit '0' fuellt

    ich hab ma ein bissl pseudo(ge)code'd
    -------------------------------------------------------------------------------------------
    'folgende Prozedur entfernt doppelte Eintraege aus einem Array
    Beginne Prozedur entferne_doppelte()

    'eingegebene oder Übergebene Liste
    liste <- (12,3,44,3,52,12,12,34)
    ende <- laenge (liste) -1 'höchster Index ist Länge minus Eins

    'durchlaufe den gesamten Array
    Fuer i <- 0 Bis ende
    Wenn liste[i] <> 0 Dann
    'vergleiche mit allen nachfolgenden Elementen
    start <- i + 1
    Fuer j <- start Bis ende
    Wenn liste[i] 0 liste [j] Dann
    'alle Folgenden aufruecken
    Fuer k <. j Bis ende -1
    liste [k] <- liste[k+1] 'dewegen oben 'Bis ende -1'
    Naechste k
    'am Ende mit Nullen Auffuellen
    liste [ende] <- 0
    'Zaehler um eins zuruecksetzen.
    'da neie Pruefung an derselben Stelle noetig
    j <- j -1
    Ende Wenn
    Naechste j
    Ende Wenn
    Naechste i

    'Ausgeben der bearbeiteten Liste
    Ausgeben( liste)

    Ende Prozedur
    ---------------------------------------------------------------------------------

    <<wenn geht soweit wies geht daran halten>>

    einen großen dank schon ma an euch!!!

    -fabo



  • Nimm einfach C++ Standard Bibliothek Algorithmen. Da geht das ganz "fix" (im sinne von code schreiben) 😉

    #include <algorithm>
    
    int main(){
        int array[] = { 1, 2, 4, 6, 7, 2, 1, 8, 9, 19, 212, 211, 111, 344, 3, 2, 4 };
    
        size_t elem_cnt = sizeof(array)/sizeof(array[0]);
    
        std::sort(array,array+elem_cnt);
    
        int * iter = std::unique(array,array+elem_cnt);
    
        std::fill(iter,array+elem_cnt,0);
    }
    

    fertig



  • Dieser Thread wurde von Moderator/in Korbinian aus dem Forum Projekte in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten