dwie tablice

0

Zadanie brzmi następująco: Dane są dwie tablice int A[] int B[] uzupełnione losowymi wartościami.
Napisz funkcje która wypisze elementy (bez powtórzeń) znajdujące się tylko w A[] i nie znajdujące się w B[].

Czy dobrze to zrobiłem ?
void takieSame(int A[],int B[])
{
int AA[rozmiar]={0};
for(int i=0; i<rozmiar; i++)
{
for(int j=0; j<rozmiar; j++)
{
if(A[i]==B[j])
{
AA[A[i]]=1;

        }

    }

}
int C[rozmiar]={0};

for(int i=0; i<rozmiar; i++)
{
if(AA[A[i]]==0)
{
C[i]=A[i];
}

}

int D[rozmiar]={0};
for(int i=0; i<rozmiar; i++)
{
if((C[i]!=0)&&(D[C[i]]==0))
{
printf("%3d",C[i]);
D[C[i]]=1;
}

}

}

2
  1. W C++ nie ma VLA.
  2. Można to zrobić w średnim czasie O(n*log(n)), a nie od razu kwadratowym.
0
Wielki Krawiec napisał(a):

Czy dobrze to zrobiłem ?
Nie rozumiem, sądzisz że kompilator cię okłamuje?

0

Nie wiem czemu nie daje na wyjsciu 0 nawet jesli jest w A[] i nie ma w B[]

0

Ogolnie sypie sie jezeli w tablicach wystepuje 0

0

O jakim występowaniu 0 mówisz, jeżeli to nawet nie ma szansy się skompilować?

1

Dlaczego nikt nie odpowiada w moim wątku?

Dziwi mnie, że chce Wam się w to wgryzać w obecnym formacie :P

2
if(AA[A[i]]==0)

To nie ma sensu. Generalnie cały ten kod jest jakiś dziwny, ale zwłaszcza ten fragment. Tablica AA ma rozmiar rozmiar, podczas gdy przecież w tablicy A[i] mogą występować dowolne liczby (na przykład trzy miliony pięćset tysięcy osiem), zatem na 99% odwołujesz się poza zakres tej tablicy.
W ogóle źle podchodzisz do problemu - zacznij od rozrysowania sobie na kartce, wraz z paroma przykładami etc., a nie od razu piszesz kod.

0

Może źle sformułowałem pytanie : Liczby losowe ale z małego zakresu np.<0-10>, rozmiar jest const int = 15.
To może ktoś napisze jakieś alternatywne rozwiązanie w prosty zrozumiały sposób byłbym bardzo wdzięczny.

0

Nie chodzi o to, abyśmy pisali za Ciebie, tylko abyś Ty się nauczył rozwiązywać problemy :P
Jak mówiłem: wypisz sobie dwie listy losowych liczb na kartce i wymyśl coś sensownego, choćby obserwując swoje własne postępowanie próbując wypisać liczby zgodnie z poleceniem.

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