merkkijonotaulukon "siivoaminen"

hjelppinkiä kaivataa

Nimitaulukko sisältää nimiä. Osa nimistä on useampaan kertaan.

Nyt nimitaulukko pitäisi siivota siten, että siellä on jokainen nimi vain kerran

Kuinka tuo oikein toteutetaan? Olen yrittänyt vaikka mitä, mutta aina menee siihen pisteeseen ettei tajua miten...

Olisiko jotain vinkkiä...esim. koodin pätkää. hitto kun en muista missä oli erilaisia taulukkojen lajittelu malleja ym ym...

13

568

    Vastaukset 13

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • hjelppinkiä?

      #include
      #include
      #include


      int main (void)
      {
      char vertailtava[10];
      int i,j=0;
      char keratyt_nimet[6][10]={""};
      char nimitaulukko[6][10]={"Kalle",
      "Pekka",
      "Ari",
      "Pentti",
      "Ari",
      "Kalle"
      };
      printf("Taulukossa: \n");

      for(i=0; i

      • sdsdsdrrwrdssdsd

        For-loopillahan tuo vissiin pitäisi toteuttaa jos teulukkossa alkaa olemaan esiintymiä yhtää nenempää.


      • hjelppinkiä
        sdsdsdrrwrdssdsd kirjoitti:

        For-loopillahan tuo vissiin pitäisi toteuttaa jos teulukkossa alkaa olemaan esiintymiä yhtää nenempää.

        Toimii ainakin jotenkin...

        include
        include
        include


        int main (void)
        {

        int i, j=0;
        char szOperators[6][15]={"Matti", "Seppo", "Kalevi","Esko","Matti","Tero"};
        char szKeratytKuskit[6][15]={""};
        int nKeratytAjomatkat[300]={0};
        char szVerrattava[15];
        char cTalletaTaulukkoon=0;
        char cLoytyi=0;
        char cEiLoytynyt=0;
        int nTalletusKohta=0;

        for(i=0;i


      • myslihattu
        hjelppinkiä kirjoitti:

        Toimii ainakin jotenkin...

        include
        include
        include


        int main (void)
        {

        int i, j=0;
        char szOperators[6][15]={"Matti", "Seppo", "Kalevi","Esko","Matti","Tero"};
        char szKeratytKuskit[6][15]={""};
        int nKeratytAjomatkat[300]={0};
        char szVerrattava[15];
        char cTalletaTaulukkoon=0;
        char cLoytyi=0;
        char cEiLoytynyt=0;
        int nTalletusKohta=0;

        for(i=0;i

        Tässä nyt yksi tapa, C ;
        Tee tarvittavat muutokset C-kieleen, jos on joku koulu työ.

        #include
        using namespace std;
        int main(){
        const int index=6;
        char nimet[index][10]={"Kalle","Pekka","Ari","Pentti","Ari","Kalle"};
        for(int i = 0; i 1 < index; i ){
        for(int j = i 1; j < index; j ){
        if(!strcmp(nimet[i],nimet[j])){
        // duplikaatti löytynyt
        // laitetaan ko. kohta tyhjäksi.
        std::cout


      • myslihattu
        myslihattu kirjoitti:

        Tässä nyt yksi tapa, C ;
        Tee tarvittavat muutokset C-kieleen, jos on joku koulu työ.

        #include
        using namespace std;
        int main(){
        const int index=6;
        char nimet[index][10]={"Kalle","Pekka","Ari","Pentti","Ari","Kalle"};
        for(int i = 0; i 1 < index; i ){
        for(int j = i 1; j < index; j ){
        if(!strcmp(nimet[i],nimet[j])){
        // duplikaatti löytynyt
        // laitetaan ko. kohta tyhjäksi.
        std::cout

        Hieno C palsta jos ei voi edes kieltä kirjoittaa.
        Kun < > merkit puuttuu.

        #include iostream
        using namespace std;
        int main(){
        const int index=6;
        char nimet[index][10]={"Kalle","Pekka","Ari","Pentti","Ari","Kalle"};
        for(int i = 0; i 1 < index; i ){
        for(int j = i 1; j < index; j ){
        if(!strcmp(nimet[i],nimet[j])){
        // duplikaatti löytynyt
        // laitetaan ko. kohta tyhjäksi.
        nimet[j][0] = '\0';
        }
        }
        }
        // katotaan miltä näyttää;
        for(int i = 0; i < index; i ){
        if(nimet[i][0] == '\0'){
        // TÄMÄ INDEKSI ON TYHJÄ
        } else {
        // TULOSTA NIMI taulukosta
        }
        }
        std::cin.get();
        return 0;
        }


    • Kaikkee paskaa!

      Maailmassa on todennäköisesti satojatuhansia samannimisiä henkilöitä, mutta useat Internetin merkittävimpien palveluitten tuottajista ei kuitenkaan atk-maikkasi tavoin ole näin perustavanlaatuista seikkaa hiffannut, vaan kehittelevät toinen toistansa muukamas hienostuneempia keinoja, joilla voivat siivota asiakkaistaan samannimiset pois. Tästä on seurauksena, että jo toinen Einari Epätoivo joutuu ottamaan Internetistä palvelua saadakseen uudeksi nimekseen Einari00001 Epätoivo, jotta palveluntarjojan taulukkoon ei tulisi kahta samannimistä!

      • myslihattu

        Ja tälläset henkilöt eivät pitäisi edes puhua ohjelmointi palstalla.

        Kyseessä on harjoitustehtävä. Jonka tarkoitus on opettaa merkkijonon käyttöä C-kielessä.
        Joten miksi sitä ei kannattaisi opetella?

        Pitäiskö myös ns. for-silmukan pyramidi tehtävät kieltää, koska egyptiläiset rakensi ne jo 4-6000 vuotta sitte?


      • lflkfkfkdkkf

        Totta. Tässä tapauksessa vain oikeasti tuo nimi (ja paljon muutakin) haetaan tiedostoista tuohon taulukkoon ja kerätään ns. "nimen perään". Sovelluksessa kuka tahansa voi olla mikä tahansa niminen.

        Tuo oli vaan palane isompaa ohjelmaa jossa tuo nimitaulukko on muodostettu muualla...tuossa sitä vain siivotaan...

        Mutta joo... jokin "ominaisuus" pitää eri esiintymilllä olla jotta ne voidaan erotella, jos se ei ole nimi, niin sitten sen pitää olla salasana....kirjautumispvm.

        Tässä yritetään kuitenkin opetella.... Kiitoksia kuitnekin kommenteista. Ratkaisukin tuohon oli tosi helppo kun jäähdytteli aivot "happihyppelyllä" pakkasessa. Kun homma jumii niin sitten se jumii....


      • ilkakasjas
        lflkfkfkdkkf kirjoitti:

        Totta. Tässä tapauksessa vain oikeasti tuo nimi (ja paljon muutakin) haetaan tiedostoista tuohon taulukkoon ja kerätään ns. "nimen perään". Sovelluksessa kuka tahansa voi olla mikä tahansa niminen.

        Tuo oli vaan palane isompaa ohjelmaa jossa tuo nimitaulukko on muodostettu muualla...tuossa sitä vain siivotaan...

        Mutta joo... jokin "ominaisuus" pitää eri esiintymilllä olla jotta ne voidaan erotella, jos se ei ole nimi, niin sitten sen pitää olla salasana....kirjautumispvm.

        Tässä yritetään kuitenkin opetella.... Kiitoksia kuitnekin kommenteista. Ratkaisukin tuohon oli tosi helppo kun jäähdytteli aivot "happihyppelyllä" pakkasessa. Kun homma jumii niin sitten se jumii....

        "Mutta joo... jokin "ominaisuus" pitää eri esiintymilllä olla jotta ne voidaan erotella, jos se ei ole nimi, niin sitten sen pitää olla salasana....kirjautumispvm."

        Ei käy (pohdi itse miksi ei). Ratkaisu on yksilöllinen id (unique identifier).
        http://en.wikipedia.org/wiki/Unique_identifier#Computing

        Duplikaattien poisto on perusjuttuja, jolle on joissakin kielissä valmiina funktiot/metodit.

        Tuossa C :n vektorille ratkaisu ja selitys:
        http://en.allexperts.com/q/C-1040/Delete-duplicate-elements-vector.htm

        Ja vaikkapa Rubyssa on uniq ja uniq! (! tarkoittaa että muuttaa alkuperäistä taulukkoa) metodit:
        http://www.ruby-doc.org/core/classes/Array.html#M000276

        Toki harjoituksen vuoksi kannattaa tehdä oma versio.


      • ilkakasjas
        lflkfkfkdkkf kirjoitti:

        Totta. Tässä tapauksessa vain oikeasti tuo nimi (ja paljon muutakin) haetaan tiedostoista tuohon taulukkoon ja kerätään ns. "nimen perään". Sovelluksessa kuka tahansa voi olla mikä tahansa niminen.

        Tuo oli vaan palane isompaa ohjelmaa jossa tuo nimitaulukko on muodostettu muualla...tuossa sitä vain siivotaan...

        Mutta joo... jokin "ominaisuus" pitää eri esiintymilllä olla jotta ne voidaan erotella, jos se ei ole nimi, niin sitten sen pitää olla salasana....kirjautumispvm.

        Tässä yritetään kuitenkin opetella.... Kiitoksia kuitnekin kommenteista. Ratkaisukin tuohon oli tosi helppo kun jäähdytteli aivot "happihyppelyllä" pakkasessa. Kun homma jumii niin sitten se jumii....

        Tietenkin nimi käy esim. kun käyttäjä pakotetaan valitsemaan uniikki käyttäjätunnus (kuten moni nettirekisteröinti toimii).


      • myslihattu
        ilkakasjas kirjoitti:

        "Mutta joo... jokin "ominaisuus" pitää eri esiintymilllä olla jotta ne voidaan erotella, jos se ei ole nimi, niin sitten sen pitää olla salasana....kirjautumispvm."

        Ei käy (pohdi itse miksi ei). Ratkaisu on yksilöllinen id (unique identifier).
        http://en.wikipedia.org/wiki/Unique_identifier#Computing

        Duplikaattien poisto on perusjuttuja, jolle on joissakin kielissä valmiina funktiot/metodit.

        Tuossa C :n vektorille ratkaisu ja selitys:
        http://en.allexperts.com/q/C-1040/Delete-duplicate-elements-vector.htm

        Ja vaikkapa Rubyssa on uniq ja uniq! (! tarkoittaa että muuttaa alkuperäistä taulukkoa) metodit:
        http://www.ruby-doc.org/core/classes/Array.html#M000276

        Toki harjoituksen vuoksi kannattaa tehdä oma versio.

        ""Tuossa C :n vektorille ratkaisu ja selitys:
        http://en.allexperts.com/q/C-1040/Delete-duplicate-elements-vector.htm""

        Miksi nykyään kaikki tehdään vektoreilla? Hirvee härdelli.
        Linkitetty lista, linked list mieluiten kaksisuuntainen olis kaikista optimaalisin tähän :)
        Senku deletois nimen pois listasta.


      • myslihatty
        myslihattu kirjoitti:

        ""Tuossa C :n vektorille ratkaisu ja selitys:
        http://en.allexperts.com/q/C-1040/Delete-duplicate-elements-vector.htm""

        Miksi nykyään kaikki tehdään vektoreilla? Hirvee härdelli.
        Linkitetty lista, linked list mieluiten kaksisuuntainen olis kaikista optimaalisin tähän :)
        Senku deletois nimen pois listasta.

        Lisäys
        Ja jos nimiä on järjetön määrä kuten vaikka väestörekisteri, ilman oraclee, sql:ää. Niin silloin pitää tarraa kiinni puusta ;)
        (mutta todellisuudessa tietokanta taitaisi hoitaa ton asian)


      • myslihattu kirjoitti:

        ""Tuossa C :n vektorille ratkaisu ja selitys:
        http://en.allexperts.com/q/C-1040/Delete-duplicate-elements-vector.htm""

        Miksi nykyään kaikki tehdään vektoreilla? Hirvee härdelli.
        Linkitetty lista, linked list mieluiten kaksisuuntainen olis kaikista optimaalisin tähän :)
        Senku deletois nimen pois listasta.

        > Linkitetty lista, linked list mieluiten kaksisuuntainen olis kaikista optimaalisin tähän :)

        olet oikeassa: taulukoissa tuhlataan tilaa tai niistä loppuu tila kesken :-( linkitetty rakenne ei sido käsiä jos vaan keskusmuisti riittää

        nopea käsittely sitten isoissa aineistoissa taitaa tosiaan mennä linkitettyjen binääripuiden käsittelyksi ... mutta pienet tavallisinakin ... ja jollei ole kiire niin aputiedostojen kautta


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mikä on totta mikä ei?

      Onko juoru vai ei että nimeltä mainitsematon henkilö on tehnyt naiselle/naisille jotain joka on väärin?
      Kuhmo
      21
      2004
    2. Lopetetaanko tämä

      Juttu ja mennään eteenpäin? Pystytkö?
      Ikävä
      128
      895
    3. Just saying

      Mies joka antaa naiselle turvallisen olon, on seksikäs. Ei kieroja kikkoja ja haluaa olla vain sen yhden naisen mies.
      Ikävä
      138
      701
    4. Voisin antaa sulle nyt

      Halin❤️
      Ikävä
      54
      626
    5. Löytyikö syy miksi Martina on Muhiksen kanssa

      Saipa naurut Gekkosen kuvasta, missä ovat ravintola Hookissa Immu fight night ottelun jälkeen, Muhoksella pullottaa hirv
      Kotimaiset julkkisjuorut
      94
      597
    6. Tosi kiva on

      Joo. Mitä olisit menettänyt jos olisit paljastanut itsesi?
      Ikävä
      65
      541
    7. Jos selviäisi että kaivattusi

      Olisi savant asperger? Rakastaisitko vielä? Savant-lahjakkuus olisi kapea-alaista neroutta liittyen mekanisiin ja tilan
      Ikävä
      88
      540
    8. Janpen Thai lopettanut, miksiköhän

      Hyvää apetta teki.
      Suomussalmi
      12
      537
    9. Jorma Uotinen läväytti härskin heiton - Paljastus uudesta TTK-romanssista?

      Tuomari Jorma Uotisen linja on välillä hyvinkin rohkea TTK:ssa. Hän näpäytti Jaakko Parkkalille ja Kastanja Rauhalalle v
      Tanssii tähtien kanssa
      11
      533
    10. Päivän aivopieru Trumpilta

      Trump julisti sodan hyttysiä vastaan. Myös punkit ovat Trumpin sodan kohteena. Eikö vieläkään USA:n kansa tajua tuon uko
      Maailman menoa
      66
      527
    11. Jokin ei täsmää

      Joskus yksi vuosiluku saa katsomaan koko tarinaa uudestaan. Löysin gradun. Matematiikka ei oikein täsmää siihen, mitä mi
      Ikävä
      298
      526
    12. Tehdään yhdessä itsestämme

      Parhaat versiot❤️ Se vaatii molemmilta hyvää itsetuntoa!
      Ikävä
      42
      525
    13. Toivotko vielä viestiä

      Minulta? En rohkene enää ottaa yhteyttä, kun varmasti jo uusia naisia elämässä. Nolaisin vain itseni.
      Ikävä
      36
      492
    14. Oliko Jani Halmeen aika jo tippua TTK:sta?

      Jani Halme ja Claudia Ketonen joutuivat jättämään TTK:n. Halme ja Ketonen saivat viimeiseksi jäänestä tanssista, sambas
      Tanssii tähtien kanssa
      26
      474
    15. Kuka kaipaa T m?

      Kerro nainen kirjaimesi vaan... Haluan miettiä kuka tulee ekana mieleeni.. kuin kurkistus tunteiden meren pinnalle, jota
      Ikävä
      36
      470
    16. Miksi jotku naiset on niin tyhmiä

      Että elättelevät turhaa toivoa toisen kustannuksella. Onko ne kaikki kaappilesboja vai mikä niitä vaivaa? Sitten itketä
      Ikävä
      51
      437
    17. Olen ajellut Dieseleillä yli 50 vuotta.

      Enkä ole koskaan kaivannut sähköautoa.
      Hybridi- ja sähköautot
      104
      437
    18. Kerro muuten miksi

      Estit somessa?
      Ikävä
      41
      434
    19. Vaikea on tämän

      Jälkeen suhtautua sinuun ilman ettei muista kirjoituksiasi.
      Ikävä
      58
      422
    20. S-ryhmän vastuullisuuden kaksoisstandardi

      Vastuullisuuspuhe on helppoa. Vaikeampaa on selittää, miksi S-ryhmän omien merkkien tuotteita ja raaka-aineita hankitaan
      Maailman menoa
      10
      412
    Aihe