IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Bilko
Člen
Avatar
Bilko:6.12.2014 0:18

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
I could write a script that would replace you.
Avatar
Odpovídá na Bilko
Michal Štěpánek:6.12.2014 7:59

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:6.12.2014 12:51

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
I could write a script that would replace you.
Avatar
Odpovídá na Bilko
Michal Štěpánek:6.12.2014 12:53

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ý
Tvůrce
Avatar
Odpovídá na Bilko
Jan Vargovský:6.12.2014 14:05

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í
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
6.12.2014 14:05
Avatar
Bilko
Člen
Avatar
Odpovídá na Jan Vargovský
Bilko:6.12.2014 14:45

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
I could write a script that would replace you.
Avatar
Bilko
Člen
Avatar
Odpovídá na Jan Vargovský
Bilko:6.12.2014 14:54

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

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

Nahoru Odpovědět
6.12.2014 14:54
I could write a script that would replace you.
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.