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
C++ pomoc
Otrzymałeś(aś) rozwiązanie do zamieszczonego zadania? - podziękuj autorowi rozwiązania! Kliknij
-
- Rozkręcam się
- Posty: 39
- Rejestracja: 20 wrz 2016, 11:25
- Podziękowania: 3 razy
- Otrzymane podziękowania: 14 razy
- Płeć:
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.
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.
-
- Witam na forum
- Posty: 3
- Rejestracja: 03 wrz 2018, 18:59
- Płeć:
- Kontakt: