Kezdőoldal » Számítástechnika » Programozás » Hogy lehet megszámolni, hogy...

Hogy lehet megszámolni, hogy egy string tömbben hányszor szerepel egy szó, ha nem tudom, hogy hanyadik eleme a tömbnek a keresett szó?

Figyelt kérdés

Tehát pl van egy gyümölcsök tömb:

alma,narancs,banán,alma,kiwi,banán,narancs


És az int narancsdarab=0 változóba el szeretném menteni, hogy hány narancs van, az int almadarab=0 változóba pedig az almák számát, de nem tudom, hogy milyen sorrendben vannak a gyümölcsök a tömbben. Akkor ez hogyan oldható meg? (Egyébként C++)


2018. febr. 8. 07:50
1 2
 1/16 A kérdező kommentje:
Ja és kimaradt még, hogy nem tudom milyen adatok szerepelnek a tömbben (nem gyümölcsök) de többször is szerepelnek ugyanazok a szavak.
2018. febr. 8. 07:53
 2/16 anonim ***** válasza:
100%
Ciklussal végigmész rajta és ha egyikre vagy másikra egyezés van akkor az adott változóhoz hozzáadsz egyet.
2018. febr. 8. 07:57
Hasznos számodra ez a válasz?
 3/16 A kérdező kommentje:
De ha nem tudom, hogy mi a neve az egyiknek meg a másiknak, akkor hogy hasonlítsam össze??
2018. febr. 8. 08:43
 4/16 anonim ***** válasza:
Map adatszerkezettel.
2018. febr. 8. 08:57
Hasznos számodra ez a válasz?
 5/16 anonim ***** válasza:
89%

"Tehát pl van egy gyümölcsök tömb:

alma,narancs,banán,alma,kiwi,banán,narancs "


Létrehozol egy ugyanekkora dbnevű tömböt, aminek minden eleme 0.

Tehát nem lesz külön narancsdb meg almadb változód.


Utána végigmész a másik tömbön.

Az i. elemet berakod egy string változóba. Mondjuk egy 'elem' nevűbe.


Ekkor végigmész a gyümölcs tömbön, és ha gyümölcs[i] egyezik az elem-mel, akkor a db[i]-t növeled eggyel.


Ez tehát két egymásba ágyazott ciklus lesz.



Aztán a végén bejárhatod mégegyszer a gyümölcs tömböt és mondjuk egy ilyet kiírhatsz:

gyülömcs[i] : db[i]

2018. febr. 8. 09:55
Hasznos számodra ez a válasz?
 6/16 anonim ***** válasza:
#5: Ez mi akar lenni?
2018. febr. 8. 10:06
Hasznos számodra ez a válasz?
 7/16 A kérdező kommentje:
#5: Köszönöm!
2018. febr. 8. 10:18
 8/16 anonim ***** válasza:
20%

"#5: Ez mi akar lenni?"


Algoritmusnak hívják.

De hívhatod megoldási ötletnek is.

2018. febr. 8. 10:30
Hasznos számodra ez a válasz?
 9/16 anonim ***** válasza:
0%

5: Hát ez elég tré megoldás.


Nem kell végigmenni semmin.

A stringek első karakterének vizsgálata elég, mivel ha az nem egyezik, akkor nyilván nincs azonosság. Ha egyezik, akkor kell csak tovább lépni.


Amúgy szép feladat - iskolás szinten -, lehet vele brillírozni.

2018. febr. 8. 10:46
Hasznos számodra ez a válasz?
 10/16 sharkxxx ***** válasza:

[link]


#include <iostream>

#include <map>

using namespace std;

const int SIZE = 7;

string gyumolcsok[SIZE] = {"alma", "narancs", "banan", "alma", "kiwi",

                          "banan", "narancs"};

int main()

{

    int i;

    map<string, int> fruits;

    map<string, int>::iterator it;

    // Initialize the fruits list.

    for (i = 0; i < SIZE; i++) {

        fruits.insert(pair<string, int>(gyumolcsok[i], 0));

    }

    // Count items.

    for (it = fruits.begin(); it != fruits.end(); it++) {

        for (i = 0; i < SIZE; i++) {

            if (gyumolcsok[i] == it->first) {

                it->second += 1;

            }

        }

    }

    // Show item counts.

    for (it = fruits.begin(); it != fruits.end(); it++) {

        cout << it->first << "\t";

        cout << it->second << " db\n";

    }

    return 0;

}

2018. febr. 8. 11:09
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!