Kezdőoldal » Számítástechnika » Programozás » C++-ban hogy nézem meg cikluss...

C++-ban hogy nézem meg ciklussal, hogy x darab szám között (tömbben vannak) vannak-e/van-e olyan amelyek egyeznek?

Figyelt kérdés

2013. dec. 24. 23:49
1 2
 1/15 anonim ***** válasza:
Gondolkozz kicsit és ne 1 hanem inkább 2 ciklussal próbálkozz.
2013. dec. 24. 23:51
Hasznos számodra ez a válasz?
 2/15 A kérdező kommentje:

ez lenne a tippem:

int n[x];

for (int i = 0; i < x; i++)

{

for (int j = 0; i < x; j++)

{

if (n[i] == n[j]) cout << "Van egyezés.\n";

}

}

2013. dec. 25. 00:04
 3/15 anonim ***** válasza:

A fenti kód működhet (bár szerintem van benne egy változó elírás). Két gond lehet vele:

1. Ahogy a tömbméret nő, a keresési idő négyzetesen nő.

2. Önmagát is meg fogja találni, szóval már az elején biztosan lesz "egyezés". :)

2013. dec. 25. 00:15
Hasznos számodra ez a válasz?
 4/15 anonim ***** válasza:

Próbáld így:


int n[x];

// ...

for (int i = 0; i < x-1; i++) {

__for (int j = i+1; j < x; j++) {

____if (n[i] == n[j]) cout << "Van egyezés.\n";

__}

}

2013. dec. 25. 00:19
Hasznos számodra ez a válasz?
 5/15 anonim ***** válasza:

előző, és így hogyan nő a keresési idő?

(úgy egyébként erre jobb megoldás a függvény, amelyik returnöl, ha csak arra vagy kíváncsi, hogy igen, vagy nem)

2013. dec. 25. 00:41
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:

"előző, és így hogyan nő a keresési idő?"

Nem mondtam, hogy ez villámgyors, de egy fokkal hatékonyabb. Ez is négyzetesen nő, de fele az előzőnek. ((x^2)/2).


"jobb megoldás a függvény, amelyik returnöl"

____if (n[i] == n[j]) return 1;

// ...

return 0;


Igen, attól függ, mi a feladat: Darabszám kell, indexek kellenek, igaz-hamis válasz kell, stb. Ezek alapján tovább lehet gyorsítani, ez igaz. :)

2013. dec. 25. 00:49
Hasznos számodra ez a válasz?
 7/15 A kérdező kommentje:

Bevittem egy függvénybe de nem akar működni.


#include <iostream>

bool CheckForEquality (int Array[], int n)

{

for (int i = 0; i < n-1; i++)

{

for (int j = i+1; j < n; j++)

{

if (Array[i] == Array[n]) return 1;

}

}

}


int main()

{

int Numbers[6] = {1,2,3,4,6,6};

std::cout << CheckForEquality(Numbers, 6);

return 0;

}

2013. dec. 25. 00:54
 8/15 A kérdező kommentje:
nekem 0-t ad vissza a függvény
2013. dec. 25. 00:55
 9/15 anonim ***** válasza:
Ha nagyon nagy elemszámú tömbökről van szó és gyors függvény kell, akkor érdemes lehet eleve rendezetten kezelni a tömböt (vagy vektort). Új elem beszúrásakor így rögtön lehet nagyon gyorsan az ismétlődéseket is rögzíteni. Szóval ha ez a feladat, akkor érdemes eleve ehhez tervezni a tárolást, adatkezelést.
2013. dec. 25. 00:57
Hasznos számodra ez a válasz?
 10/15 A kérdező kommentje:

Legközelebb alszom egyet az ilyen problémákra. Elírtam egy változót, elnézést, ezért nem működött. :)

Köszönöm a segítséget mindenkinek.

2013. dec. 25. 00:58
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!