Artur 55 wyśw. 06-07-2025 15:39

Praca domowa 3 zad 2

2. Napisz program, w którym utworzona zostanie 12-elementowa tablica zawierająca liczby typu int.
Wypełnij ją dowolnymi wartościami. Następnie program ma sprawdzić czy w tablicy znajduje się
element równy wartości przypisanej do jakiejś zdefiniowanej początkowo w programie zmiennej.
Przykładowy wynik programu dla tablicy o elementach: {2, 4, 9, 11, 3, 5, 2, 6, 8, 1, 3, 8}
W tablicy znaleziono poszukiwaną wartość: 6


int tab[] = {2,4,9,11,3,5,2,6,8,1,3,8};
int liczba = 7;
System.out.println("Szukana liczba: "+liczba);
System.out.print("Przykladowy wynik programu dla tablicy o elementach: {");
for(int i = 0; i < 12; i++)
{
    if(i == 11)
    {
        System.out.print(tab[i]+"}");
    }
    else
    {
        System.out.print(tab[i]+",");
    }
}
for(int j = 0; j < 12; j++)
{
    if(tab[j] == liczba)
    {
        System.out.print("\nW tablicy znaleziono poszukiwana wartosc: "+liczba+" na "+(j+1)+" miejscu");
    }
    else
    {
        System.out.print("\nW tablicy nie znaleziono poszukiwanej wartosci: "+liczba);
    }
}

1 - Co zmienić w drugiej pętli for (nie używając booleana), aby "W tablicy nie znaleziono poszukiwanej wartosci: " wypisało się tylko 1 raz (o ile to możliwe bez booleana)?

2 - Dlaczego jak zmieniam w kodzie z odpowiedzi if(znalazlem) na if(znalazlem=true) to program już nie działa tak jak powinien? Co w takim razie znaczy samo if(znalazlem)?


Programowanie Dodaj post do ulubionych Poproś o pomoc
s.gugula 06-07-2025 23:31

1 - Hmm, no raczej trzeba by to zrobić w podobny sposób jak w odpowiedziach, tzn. To wypisanie na ekran informacji o braku znalezienia liczby wywalić poza pętlę. Tzn. pewnie możnaby to zostawić w pętli i robić jakieś dziwne kombinacje, ale to by już było bardzo nienaturalne podejście.

2 - W innym temacie się już do tego odniosłem, ale w każdym razie błąd, który tu popełniasz to użycie pojedynczego znaku =, bo to wtedy nie jest operator przyrównania stron do siebie, tylko operator przypisania. Więc on nie sprawdza czy lewa strona jest równa prawej. Ale jeśli dasz już ==, to będzie ok, tzn zapisanie if(znalazlem) to bedzie to samo co if(znalazlem == true).


Artur 07-07-2025 11:39

Dziękuję :D