matematykaszkolna.pl
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 emotka
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