Forum » Programiranje » C++ preštej število enk
C++ preštej število enk
gejzo ::
Vnesemo binarno število, program pa izpiše število enk, ki so v številu.
Primer: vnesemo 110101 Izpiše 4
Ves čas se zajebavam s to nalogo pa mi ne rata.
Prosim za pomoč
Primer: vnesemo 110101 Izpiše 4
Ves čas se zajebavam s to nalogo pa mi ne rata.
Prosim za pomoč
overlord_tm ::
Sicer ne poznam C++, ampak predvidevam da dobis podatke notri kot char array?
Torej spustis en for cez array, gledas ce je na trenutnem mestu enka, ce je povecas stevec, se premaknes naprej. Dokler ne prides do konca arraya.
Pseudokoda
Seveda si malo poglej ascii tabelo, kako kodo ima enka ;)
Torej spustis en for cez array, gledas ce je na trenutnem mestu enka, ce je povecas stevec, se premaknes naprej. Dokler ne prides do konca arraya.
Pseudokoda
preberes string v spremenljivko str counter = 0 for(i=0; i < length(str); i++) { if(str[i] enako 1) counter++ }
Seveda si malo poglej ascii tabelo, kako kodo ima enka ;)
overlord_tm ::
Sicer pa baje obstaja nekje funkcija count(start, stop, criteria), sam pomoje je to ze goljufanje :D
gejzo ::
Hmm..
Sam zdaj program ne ve, ali hočem niz iz črk ali iz številk, tako da mi vedno vrne 0 :(
Sam zdaj program ne ve, ali hočem niz iz črk ali iz številk, tako da mi vedno vrne 0 :(
overlord_tm ::
daj nalimaj program ... itak kar ti preberes so za racunalnik crke, neglede na to da so notri samo stevilke.
Kako pa preverjas? Stevilka 1 ima v ascii vrednost 49, ce kaj pomaga :)
Kako pa preverjas? Stevilka 1 ima v ascii vrednost 49, ce kaj pomaga :)
kihc ::
Če imaš ti števila podana kot tabelo char-ov, potem moraš delat primerjavo z == '1', če imaš integerje pa == 1.
x
gejzo ::
using namespace std;
int main(int argc, char *argv[])
{
string str;
int counter=0;
cin>>str;
for(int i=0; i manjše od str.length(); i++)
{
if(str[i]==1)
counter++;
}
izpis counter
int main(int argc, char *argv[])
{
string str;
int counter=0;
cin>>str;
for(int i=0; i manjše od str.length(); i++)
{
if(str[i]==1)
counter++;
}
izpis counter
Tutankhamun ::
if(str[i]==1) // mala napaka
if(str[i]=='1') // pravilno z narekovaji
if(str[i]=='1') // pravilno z narekovaji
AMD Phenom QUAD 9950 Black Edition, 8GB
roli ::
Čisto tako mimogrede. Imam en podoben program samo jaz ne rabim preštet karkoli ampak moram poiskati največjo števko v nekem številu in jo zamenjati s tisto na prvem mestu. Problem je, ker na začetku dobim navaden int. Torej kak namig kako potem to porihtati? Verjetno bi bilo najbolje pretvoriti stvar v nek String ali kaj podobnega in potem pač izvesti zamenjavo ter nato ponovno stvar pretvoriti v int.
http://www.r00li.com
Zgodovina sprememb…
- spremenil: roli ()
Mavrik ::
Jap, tako bo daleč najlažje. Lahko se zajebavaš z mod artimetiko, samo bo pretvorba v string precej bolj elegantna.
The truth is rarely pure and never simple.
kihc ::
C++ pozna stringstream, ki je super zadeva ko se naučiš uporabljat.
Za tvojo nalogo bi šlo nekako tako:
Za tvojo nalogo bi šlo nekako tako:
#include <sstream> ... int main() { using namespace std; stringstream ss; int mojint; string mojstring; cin >> mojint; ss << mojint; ss >> mojstring; ... }
x
Zgodovina sprememb…
- spremenil: kihc ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [python] project euler problemOddelek: Programiranje | 1276 (828) | Spura |
» | c++ pretvorba malih črk v velike in obratnoOddelek: Programiranje | 978 (767) | cosa nostra |
» | c++ fukncije in proceduraOddelek: Programiranje | 2463 (1732) | roccat |
» | [JAVA] String problem!Oddelek: Programiranje | 1660 (1357) | Sergio |
» | [cpp]Kako ugotoviti koliko zapisov je v arrayu?Oddelek: Programiranje | 821 (740) | technolog |