C++ najdenie cislice v cisle

Programovacie jazyky, rady, poradňa...
viper1993
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1011
Registrovaný: 28 feb 2008, 16:54
Bydlisko: Prievidza
Kontaktovať používateľa:

C++ najdenie cislice v cisle

Príspevok od používateľa viper1993 »

V C++ som uplny zaciatocnik a potreboval by som pomoct s jednou ulohou.

Program nacita trojciferne cislo a vyhodnoti ci sa v nom nachadza cislica 5. Podla mna je to jednoduche a sam sa cudujem ze nie a nie vymysliet nejake riesenie. Ako to riesit? Napadlo ma jedine nieco take, ze cislo si deklarovat ako stringove pole a v nom skusit vyhladat jednotlive znaky(pole[1],pole[2] atd. - toto mam z pascalu a neviem to pouzit v C++ :D).

Dakujem za kazdu radu.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: C++ najdenie cislice v cisle

Príspevok od používateľa BX »

Prevod čísla na string je jednoduchá záležitosť (delenie a modulo). Výskyt čísla vieš zistiť napríklad aj práve týmto spôsobom, ani to nemusíš pchať do stringu, len to stále del desiatimi a ak ti niekedy po modulo desiatimi výjde 5, tak máš hotovo.
jojinkho
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 341
Registrovaný: 30 aug 2007, 9:37

Re: C++ najdenie cislice v cisle

Príspevok od používateľa jojinkho »

Najjednoduchsie to bude nacitat do char pola a prejst jednotlive znaky (ked su len 3 ) ci sa rovnaju alebo nerovnaju 5ke.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: C++ najdenie cislice v cisle

Príspevok od používateľa BX »

jojinkho, je to jedno, ale tebe tak do budúcnosti:
1.) Prečo by som používal char pole, keď môžem poučiť string - čo je v tomto prípade to isté, ale v programe je to prehľadnejšie.
2.) Prečo by som použil string, keď môžem pracovať priamo s číslom. Použitie stringu by v prípade (uživateľského) vstupu znamenalo aj nejakú validáciu, či je to číslo.
3.) Keď budem veľmi zlý, napíšem toto:

Kód: Vybrať všetko

bool find_digit_in_number ( int digit, int number )
{
    if ( number == 0 ) return false;
    if ( number % 10 == digit ) return true;

    return find_digit_in_number ( digit, number / 10 );
}
Máš pocit, že nejaké pole/string by bol jednoduchší spôsob?

:)
Napísať odpoveď