Hogy tudok tömbösíteni C++-ban egy egészekből álló tömböt?
Tehát például itt egy tömb: 2,5,4,2,4,1,5,
és a cél ez lenne: 2,5,4,1
Szóval minden elem csak egyszer forduljon elő, a sorrendje az mindegy.
sokféleképpen lehet. a legegyszerűbb, ha egy új tömbbe kigyűjtöd őket!
fogsz egy elemet és megnézed, hogy az új tömbödbe már szerepel-e ( [link] ) ha nem, akkor hozzáadod :)
Most adok neked egy megoldást, de biztosítalak róla, hogy ezen kívül legalább 5-6 megoldás még biztos létezik:
#include <iostream>
using namespace std;
int main()
{
// a régi tömböt manuálisan állítjuk be, mert a mechanika a fontos
// nem az, hogy hogy hozzuk létre a tömböt
int tomb[] = {1, 2, 2, 5, 1, 4, 3, 3, 10, 3, 5, 4, 4, 4, 3, 1, 2, 2, 7, 7};
int hossz = 20;
// a kizárást a régi tömbe fogjuk végezni, és közben csökkentjuk a
// hossz értékét
// ez az első ciklus változó, ebben a változóban megyünk nullától
// addig az elemig, ami már egy ismétlés is lehet
int i = 0;
// innen balra csak rossz elemek vannak
int strazsa = hossz - 1;
// a másik ciklusváltozóval a másik oldalról indulunk el, pontosabban a
// strázsától
int j = strazsa;
while (i <= strazsa)
{
j = strazsa;
while (j > i)
{
// ha a két elem egyezik, akkor egy biztosan
// jó elemet teszünk a jó helyre, és csökkentjuk a strázsát
if (tomb[i] == tomb[j]) {
tomb[j] = tomb[strazsa];
strazsa--;
}
j--;
}
i++;
}
hossz = strazsa + 1;
for (i = 0; i < hossz; ++i)
cout << tomb[i] << " ";
cout << endl;
return 0;
}
További 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!