Zasada działania pętli for

0

hej, to napisałem sobie programik metodą prób i błędów, i chce się dopytać czy zasady działania poniższego programu są takie jakie myśle, że są.

int main(){
    int arr[5] = {1,22,3,3,3};
    int i, j;
    int powtorzenie = 0;
    for(i=0;i<5;++i){
        for(j=i+1;j<5;++j){
                if(ar[i] == arr[j]) powtorzenie ++;
                break;
        }
    }
    printf("Ilosc powt. = %d", powtorzenie);
    return 0;
}

Program, który wypisze ilość powtarzających się liczb.

Powiedzcie mi proszę.. jak mamy inkrementacje literki 'i' i 'j'.
W jakiej kolejności one są inkrementowane? Mi się wydaje, że to leci tak:

najpierw jest inkrementowane J i jest sprawdzane od indeksu 0 do 4 dla wartości i=0, następnie jest inkrementacja o jeden dla i (czyli i=1) i znowu sprawdzane dla i=0 wszystkie wartości od 0 do 4 literki J

0

najpierw jest inkrementowane J i jest sprawdzane od indeksu 0 do 4 dla wartości i=0, następnie jest inkrementacja o jeden dla i (czyli i=1) i znowu sprawdzane dla i=1 wszystkie wartości od 0 do 4 literki J Sorka, nie mogę edytować, no i formatowanie tego postu popsułem ;_;

1

Nie łatwiej było sobie napisać proste 2 pętle?

int main() 
{
    for(int i = 0; i < 2; i++) // Pętla która wykona się 2 razy
    {
        for(int j = 0; j < 3; j++) // A ta 3 razy
        {
            printf("I: %d | J: %d\n", i, j);
        }
    }
}

Wyjście wygląda tak:

I: 0 | J: 0
I: 0 | J: 1
I: 0 | J: 2
I: 1 | J: 0
I: 1 | J: 1
I: 1 | J: 2

Na samym początku i jest ustawiane jako 0. Następuje sprawdzenie warunku i jeżeli będzie true wtedy wykonuje się ciało pierwszej pętli.
Tam zaś mamy kolejną pętle, więc ten sam myk - j = 0, sprawdzenie warunku i jeśli true to wykonuje się ciało pętli.
Gdy już wszystko co było w pętli zostało wykonane, j zostaje zinkrementowane (j++), później sprawdzany jest warunek itd.
Dopiero gdy wyjdziemy z drugiej pętli (tej z j) wtedy inkrementujemy i itd. itd.

0

dodawaj sobie logi jezeli cos nie jest oczywiste albo debuger, ogolnie to najpierw jest 1 iteracja pierwszej petli, nastepnie wszystkie iteracje 2 petli, nastepna iteracje 1 petli, znowu wszystkie iteracje 2 petli itd

0

o faktycznie, nie pomyślałem o tym żeby to tak zrobić :ddd dz

1 użytkowników online, w tym zalogowanych: 0, gości: 1