Hirdetés
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- hcl: Olympus E-PL1 nyomozás
- sziku69: Szólánc.
- Elektromos rásegítésű kerékpárok
- ricsi99: 6. Genes alaplap tündöklése kontra MS/Zintel korlátozásai
- Doky586: SecureBoot kulcsok frissítése (2026 nyara)
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- ldave: New Game Blitz - 2026
-
LOGOUT

Új hozzászólás Aktív témák
-
emitter
őstag
az abc-rendezést meg így tudod megoldani:
<pre>
int string_cmp(char *c1, char *c2)
{
return strcmp (c1,c2);
}
...
int main(void)
{
char* tomb[elemszam];
...
qsort (tomb, elemszam, maxhossz*sizeof (char), string_cmp);
...
}
</pre><p>
ahol maxhossz a tomb legnagyobb sztrigjének a hossza
remélem működni fog, mert ezt most hirtelen a szám-rendezősből írtam át
</p>
Jester01:
úgy látszik, rokon lelkek vagyunk
a kombinatorikát én is utáltam (meg még utálni is fogom), a rekurziót meg még nem használtam annyiszor, h ráérezzek a jelentőségére, egyelőre elég nehéz átlátni nekem egy rekurzív függvényt
[Szerkesztve] -
Jester01
veterán
Először rendezd abc sorrendbe a beadott szót. Ez gondolom menni fog.
Utána csinálj egy tömböt amiben jelzed, ha egy betűt már felhasználtál.
Alapesetben ez legyen csupa igaz érték (true/1).
Egy másik tömbben pedig a permutált indexeket gyűjtöd, ez alapesetben egyesével nő.
Rögvest írd is ki, mert ez lesz a legelső permutáció.
A következőt pedig úgy kapod meg, hogy az utolsó karaktertől elindulsz és mindig megkeresed a következő fel nem használt betűt. Ha már nincs ilyen, akkor lépsz eggyel visszább (ha nem tudsz, akkor kész vagy). Amint találtál egyet, ismét elindulsz előre és szépen veszed az első fel nem használt betűt.
Igy valahogy:for(i = len - 1; i >= 0; i--)
{
int current = indices[ i ];
used[current] = 0;
current = findnextunused(used, current + 1, len);
if (current < len)
{
indices[ i ] = current;
break;
}
}
if (i < 0)
{
break;
}
indices[++i] = findnextunused(used, 0, len);
for(i++; i < len; i++)
{
indices[ i ] = findnextunused(used, indices[i - 1] + 1, len);
}
A findnextunused függvényem második paramétere a keresés kezdőpozíciója.
A megtalált betűt be is jelöli, hogy használatban van.
Biztos van egyszerűbb módja, mindig is utáltam a kombinatorikát
Emitter: a rekurziót is utálom
De azért persze szoktam használni.
MOD: [ i ]
[Szerkesztve] -
emitter
őstag
a sorba rendezésre itt van egy, de ez csak számokat rak sorba, mingyá előkotrom a stringes verziót is
[link]
a betűk megkeverését (amit n! féleképp tudsz megtenni) szvsz vhogy rekurzióval kell (érdemes ) megoldani, a baj csak az, h nem tudom hogyan
majd vki okosabb megmondja a tutit
for ciklusokkal is lehetne, de ekkor szvsz annyi ciklus kéne amennyi a string hossza, ez a megoldás márpedig enyhén ronda
-
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Samsung Galaxy A57 - kecses test, lusta lélek
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Fizetős szoftverek ingyen vagy kedvezményesen
- Autós topik látogatók beszélgetős, offolós topikja
- Gyúrósok ide!
- Crimson Desert
- Milyen billentyűzetet vegyek?
- Horgász topik
- Autós topik
- További aktív témák...
- Apple iPhone 17 Pro 512GB & 1TB Bontatlan Független Összes Szín / 27% áfás ár
- Eladó Realme gt neo 2 5g Dobozában tokkal
- Lenovo Legion Slim 5 Ryzen 7 7840HS 16GB 512GB RTX 4060 OLED 120Hz 1év garancia
- KERESEK Magyar GARIS VGA-t: 7900XTX NITRO+ / 7900GRE Pulse / 4070Ti SUPER 2x Ventus
- Ducky One 3 FULL/TKL/SF/MINI billentyűzetek többféle színben és kapcsolókkal, plusz csuklótámaszok
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

</p>


De azért persze szoktam használni.
majd vki okosabb megmondja a tutit
az enyém port beolvasással foglalkozok...