Położenie tablicy1 wewnątrz tablicy2.

0

Hej, mam takie zadanie:
Dwie liczby naturalne są zgodne, jeżeli w zapisie dwójkowym zawierają tę samą liczbę jedynek, oraz tę samą liczbę zer. Dane są dwie globalne tablice wypełnione liczbami naturalnymi: int t1[max1], int t2[max2][max2], max2>>max1
Napisać funkcję,, która sprawdza czy istnieje takie poziome położenie tablicy t1 wewnątrz tablicy t2, przy którym liczba zgodnych elementów jest większa od P procent liczby elementów tablicy t1. P jest liczbą całkowitą z zakresu 1-99 włącznie. Do funkcji należy przekazać liczbę P. Obie oryginalne tablice powinny pozostać niezmienione.

I chodzi o to, że nie wiem w jaki sposób "przesuwać" się tą pierwszą tablicą w wierszu drugiej tablicy. Proszę o jakąś wskazówkę.
Część mojego programu:
A i przyjąłem na razie male rozmiary tablic bo chce sobie to wszystko wypisać t1[4], t2[10][10]

    //sprawdzamy czy istnieje polozenie
    licz_zgod = 0;
    k = 0;
    for (i = 0; i < 10; i++) {
        //while (j < 10) ??
            for (j = 0; j < 10 && k < 4; j++) {
                if (zgodne(t1[k], t2[i][j])) { //inna funkcja na sprawdzenie czy sa zgodne
                    licz_zgod++;
                }
                k++;
            }
            if (licz_zgod > p) {
                return 1;
            }
            else {
                k = 0; // zeruje k i chce zaczac od nowa sprawdzac do konca wiersza drugiej tablicy
                        //ale nie wiem jak zrobic zeby zaczac od j+1 kolumny
            }
      }
1

Jeśli dobrze zrozumiałem tresc, to wystarczy stworzyc zmienną a przechowującą początek t2, np:

t2: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
t1: 1, 2, 3, X, X, X, X, X, X, XX
a = 0
t2: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
t1: X, 1, 2, 3, X, X, X, X, X, XX
a = 1
t2: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
t1: X, X, X, X, 1, 2, 3, X, X, XX
a = 4
[...]

Czyli taka pętla:

for(int poczatek_t2 = 0; poczatek_t2 + dlugosc_t1 <= dlugosc_t2; ++poczatek_t2)
{
   //...
}

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