C++ początki
kuul: Jak napisac program ,który poda pozycję pierwszego wystąpienia dwóch identycznych liter w
wyrazie?
16 lis 19:37
PW: Zadanie sformułowane niezrozumiale. Idzie o to, kiedy wystąpią obok siebie dwie identyczne
litery, jak w wyrazie niewinnoś, czy takim wydtąpieniem dwóch identycznych liter w
wyrazie jest już wystąpienie drugiej litery 'i':
niewinność?
16 lis 21:06
marcin: Jeżeli nie rozróżniamy liter/małe duże, to zamieniamy np. wszystkie litery na duże.
1) Tworzymy tablicę bool tab[] o rozmiarze 26 i wypełniamy ją wartościami false
2) Tworzymy pętlę, która iteruje po wszystkich literach
3) Tworzymy zmienną int c w której od kodu ASCII (dla dużej litery) odejmujemy 65
4) Tworzymy instrukcję warunkową, która sprawdza czy tab[c] ma wartość false, wtedy tab[c]
ustawiamy na true, w przeciwnym razie mamy odpowiedź na pozycję kiedy się powtarzają
16 lis 21:22
xyz:
#include <iostream>
using namespace std;
int main() {
string tekst;
cout<<"Podaj tekst: "<<endl;
cin>>tekst;
for(int i=0; i<tekst.length(); i++)
{
for(int j=i; j<tekst.length; j++)
{
if(tekst[i]==tekst[j])
cout<<"Znalazlem dwie identyczne litery, pierwsza na pozycji:"<<i<<", druga
na:"<<j<<endl;
}
}
return 0;
}
16 lis 21:39
jc: Rozwiązanie Marcina jest ładne i najszybsze
16 lis 21:42
xyz: w sumie to co napisalem zadziala dla ilosc identycznych liter >= 2
16 lis 21:43
xyz: @jc, ok, ale jego rozwiazanie tez zaklada dla ilosci >=2
16 lis 21:43
xyz: i tak wgl jest szybsze ale marnuje wiecej pamieci xd
16 lis 21:45