Avatar
Bilko
Člen
Avatar
Bilko:

V C# programuji jednu funkci, která veme pole, např: "2+2+2" a zjistí, že na každé liché pozici pole je znaménko plus... pokud ano, sečte daná čísla...
jen je chybka v tom, že výsledek 2+2+2 je 150 :D

Kód:
public int fce_secti(string pole)
{
int pocitadlo = 0;
for (int i = 0; i < pole.Length; i++)
if ((i % 2 != 0) && (pole[i] == '+'))
pocitadlo++;

int temp = (pole.Length - 1) / 2;

int vysledek = 0;

if (pocitadlo == temp)
for (int i = 0; i < pole.Length; i++)
if (i % 2 == 0)
vysledek = vysledek + pole[i];
return vysledek;
}

Budu moc rád za každou pomoc :) zkoušel jsem i Convert.ToInt32, ale nic...

Dík moc :))

Odpovědět 6.12.2014 0:18
Papír je můj kamarád.
Avatar
Odpovídá na Bilko
Michal Štěpánek:

Zkus si odkrokovat to, co ten program dělá a udělej si v určitých fázích výstupy stavů pocitadla,tempu a pole[i], abys viděl jejich hodnoty při procházení těmi cykly

Nahoru Odpovědět 6.12.2014 7:59
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Bilko
Člen
Avatar
Bilko:

No já to valil přes debugger, kontroloval jsem to krop po kroku, ale chybu jsem nenašel... prostě to čístlo roste jak počet hladových v Somálsku...

Nahoru Odpovědět 6.12.2014 12:51
Papír je můj kamarád.
Avatar
Odpovídá na Bilko
Michal Štěpánek:

Tak se koukni, proč se ten cyklus nezastaví, když je výsledek 6
Při každém projití cyklem si vypiš výsledek...

Editováno 6.12.2014 12:53
Nahoru Odpovědět 6.12.2014 12:53
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Bilko
Jan Vargovský:

Však to počítá dobře :) 50+50+50 = 150.

EDIT: Aby to mělo pro tebe nějakou informační hodnotu http://cs.wikipedia.org/wiki/ASCII

Editováno 6.12.2014 14:05
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +2 6.12.2014 14:05
Avatar
Bilko
Člen
Avatar
Odpovídá na Jan Vargovský
Bilko:

To mě taky napadlo, ale po této cestě jsem se nevydal :) zkusím to vyřešit pomocí ASCII :) díky moc!!

Nahoru Odpovědět 6.12.2014 14:45
Papír je můj kamarád.
Avatar
Bilko
Člen
Avatar
Odpovídá na Jan Vargovský
Bilko:

vysledek = vysledek + Convert.ToInt32(po­le[i].ToStrin­g());

:) už to šlape, dík!

Nahoru Odpovědět 6.12.2014 14:54
Papír je můj kamarád.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.