Hogy számolom meg, hogy két tömb elemei között hány egyező van?
Egy tömbben lévő elemek között nincs egyenlőség. Azt kéne megszámolni hogy a két tömb között összesen hány van. Egy kis mini játékhoz kellene, ahol a találatok számát nézi meg.
Én ezt írtam, de van, amikor 1-el többet ad vissza:
USINT CountHits (USINT Array1[], USINT Array2[], USINT n)
{
Hits = 0;
for (int i = 0; i < n-1; i++)
{
for (int j = i+1; j < n; j++)
{
if (Array1[i] == Array2[i] || Array1[j] == Array2[j] || Array1[i] == Array2[j] || Array1[j] == Array2[i]) Hits++;
}
}
return Hits;
}
meg se próbálom értelmezni azt a feltételt, amit te oda leírtál..
for(int i=0; i<n; ++i) {
for(int j=0; j<n; ++j) if(array1[i]==array2[j]) ++hits;
}
Ehhez nem kell észkombájnnak lenni:
Minden elemet össze kell hasonlítani minden elemmel, de csak egyszer.
Fogod az első elemet és végig futsz a sorban utána következőkön.
Fogod a második elemet és végig futsz a sorban UTÁNA következőkön.
Fogod a harmadik elemet...
és így tovább egészen az utolsó előttiig, amit már csak az utolsóval kell összehasonlítani.
jó amit írtam, csak nem hatékony, ha a ++hits után kibreakelsz a belsőből, akkor már jobb, de ugyanúgy működik
(előző, te meg olvasd el a kérdést)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!