C++ pomoc

Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
Krystek97
Czasem tu bywam
Czasem tu bywam
Posty: 80
Rejestracja: 16 kwie 2016, 17:18
Podziękowania: 25 razy
Płeć:

C++ pomoc

Post autor: Krystek97 » 24 paź 2017, 00:02

Witam,mam problem z tablicami.Otóż,mam tablice s[10][10] wypełnioną losowymi liczbami ,mam podać długość najdłuższej linii pionowej (czyli ciągu kolejnych liczb w tej samej kolumnie
), złożonej z liczb tej samej wartości,ma ktoś jakiś pomysł?z góry dzięki za pomoc

michal486
Rozkręcam się
Rozkręcam się
Posty: 39
Rejestracja: 20 wrz 2016, 11:25
Podziękowania: 3 razy
Otrzymane podziękowania: 14 razy
Płeć:

Post autor: michal486 » 24 paź 2017, 21:43

stwórz jakąś zmienną maks, coś do zliczania i pętla w pętli.

int maks=0, zlicz=1;
for(int i=0;i<10;i++)
for(int j=0;j<9;j++)
{
if(tab[j]==tab[j+1])
{
zlicz++;
}
else
{
if(zlicz>maks) maks=zlicz;
zlicz=1;
}

}
cout<<"Maksymalna dlugosc linii pionowej to: "<<maks<<endl;

Krótki opis:
Pętla w pętli żeby przejść przez całą 10x10, sprawdzamy komórkami czy tab[j]==tab[j+1] dlatego, że badamy kolumny, jakbyśmy sprawdzali elementy wierszami, to by było tab[j]==tab[j+1].
Zliczanie zaczyna się od 1, dlatego, że jak mamy np. 3 liczby
5,7,8
i je porównujemy czyli czy 5=7?, potem czy 7=8? to mamy 2 porównania, a liczb jest trzy, zatem trzeba dodać tą jedynkę do liczby prawidłowych porównań.
No i druga pętla idzie do elementu o jednego przed końcem tablicy (chodzi mi o tę pętlę gdzie jest "j"), żeby nie przekroczyć końca tablicy, gdyż przy porównaniu i tak porównujemy przedostatni element z ostatnim, bo sprawdzamy z [j+1], więc żadnego elementu nie przeoczymy.

Sprawdź czy działa, mam nadzieję, że się nigdzie nie walnąłem.

lukaszglinek
Witam na forum
Witam na forum
Posty: 3
Rejestracja: 03 wrz 2018, 18:59
Płeć:

Post autor: lukaszglinek » 18 wrz 2018, 17:16

Dzięki bo mam taki problem pozdraiwam