» »

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č

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
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 :(

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 :)

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

Tutankhamun ::

if(str[i]==1) // mala napaka
if(str[i]=='1') // pravilno z narekovaji
AMD Phenom QUAD 9950 Black Edition, 8GB

gejzo ::

if(str[i]==1) // mala napaka
if(str[i]=='1') // pravilno z narekovaji


O super, dela! Hvala

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:
#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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[python] project euler problem

Oddelek: Programiranje
151193 (745) Spura
»

c++ pretvorba malih črk v velike in obratno

Oddelek: Programiranje
10913 (702) cosa nostra
»

c++ fukncije in procedura

Oddelek: Programiranje
362359 (1628) roccat
»

[JAVA] String problem!

Oddelek: Programiranje
151551 (1248) Sergio
»

[cpp]Kako ugotoviti koliko zapisov je v arrayu?

Oddelek: Programiranje
6769 (688) technolog

Več podobnih tem