Napisz program od nowa w następujący sposób, sam tak go rozwiązałem(powiem ci tylko kilka porad żebyś miał zabawę):
1. Zrób tak by twój program zliczył ile jest różnych liter - sttttreewas - tutaj jest 6 róznych od siebie liter. Jak widzisz 's' się powtarza na początku i na końcu, ale tego nie możesz wziąć pod uwagę bo nie znajdują się koło siebie. Zakładasz, że są różne.
Przykładowo:
[bbone=CPP,2320] for (o = 1; o < heh.length(); ++o){
if (heh[o - 1] == heh[o])
continue;
else
++u;
}[/bbone]
2. Następnie zrób pętlę, która przeleci literę po literze i jeżeli będą koło siebie te same litery, to niech zlicza do jakiejś zmiennej(++z). Do tego potrzebne będzie dynamiczne alokowanie pamięci.
3. Stwórz jakąs zmienna która będzie przechowywała znak. Np. char bufer;
4. Poczytaj także o:
- pętli nieskończonej - for(;
- break;
- continue;
- dynamiczne alokowanie pamięci
PS.
Nawet nie starałem się tego dogłębnie czytać, ale widzę, że przy niektórych momentach dobrze myślisz.
dlug = wejscie.length();
wejscie[c]==wejscie[c+1]; // tutaj zmieniłbym inaczej. W pętli ustawiłbym wartosc poczatkowa 1, a później wejscie[c]==wejscie[c-1]
-- Cz sty 29, 2015 5:00 pm --
Błąd u ciebie kryje się już w tej linii:
[bbone=CPP,2321] if (k>2 && k<10) {
wyjscie[z + 1] = k + 48;
z++;
j += (k - 1);
}[/bbone]
Dalej nie sprawdzałem. Wykonujesz jakieś obliczenia, które nie są potrzebne.