- Azonnali alaplapos kérdések órája
- Feketehalálra váltja a kékhalált a Microsoft
- 3D nyomtatás
- Házimozi belépő szinten
- HP notebook topic
- Házimozi haladó szinten
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
Aktív témák
-
Jester01
veterán
Valamelyest a te módszerednél maradva úgy írtam át a progid, hogy az act mindig a következõ emberre mutasson (induláskor az elsõre aki a 0 indexû), ekkor ehhez mindig (M - 1)-et kell hozzáadni. Ezzel a módosítással az 5 7 paraméterekre a 2 5 1 3 4 eredmény adódik ami remélhetõleg jó.
A számítási ciklus nekem ilyen lett:
while (done < N)
{
act += M - 1;
if (act >= x)
{
act = act % x;
}
eh[done++] = szamok[act];
if (act == x - 1)
{
/* ha az utolso volt, akkor nem kell mozgatni a tombben */
/* es a kovetkezo az elso lesz */
act = 0;
} else {
/* ha nem az utolso, akkor a tovabbi elemeket eggyel visszahuzzuk */
/* es a soron kovetkezo elem ezaltal ismet az act indexen lesz */
memmove(szamok + act, szamok + act + 1, (x - act - 1) * sizeof(int));
}
x--;
}
Az elõzõ soremeléses megjegyzésem kicsit módosítom. Nyilván úgy lesz jó, ha a kiíró ciklus eggyel rövidebb és az utolsó elemet külön írod ki. Így megtakarítasz egy if-et a ciklusban ami úgyis csak az utolsó elemre lenne igaz.
Ha nekem kellett volna megoldani ezt a feladatot, akkor valószínûleg nem ezt az utat választom, hanem egy tömbben egyszerûen azt tartom nyilván, hogy az ember él-e még. Így kicsit bonyolultabb lesz ugyan a következõ index megkeresése, de cserébe megtakarítunk egy csomó memóriamásolást.
A végére még egy stilisztikai megjegyzés: nem szerencsés keverni az angol és a magyar elnevezéseket/megjegyzéseket, válaszd ki az egyik nyelvet és következetesen használd azt. -
Jester01
veterán
Beszédesebb változónevek és néhány komment elkelne.
Valamit az ''5 7'' esetre várt jó illetve a kapott eredmény.
Ha jól látom x lenne a még életben lévõ emberek száma, a szamok tömb pedig az emberek eredeti sorszámát tartalmazza ahonnan mindig törlöd azokat akik sorra kerültek.
Ezt a részt itt nem értem:
if (act>=x)
{
act=act%x;
for (i=0;i<x;i++)
for (j=0;j<done;j++)
if (szamok==eh[j])
{
for (k=i;k<N;k++) szamok[k]=szamok[k+1];
x--;
}
act=act%x;
}
Az eredmény kiírásánál pedig egyszerûbb lenne \n nélkül kiírni az összes számot majd a végére egy \n magában. De ez csak apróság.
Szerintem lehetett volna békésebb szöveget keríteni a feladathoz
[Szerkesztve]
Aktív témák
- Azonnali alaplapos kérdések órája
- Feketehalálra váltja a kékhalált a Microsoft
- 3D nyomtatás
- Házimozi belépő szinten
- AliExpress tapasztalatok
- The First Berserker: Khazan
- Friss koncepciót hoz a Nothing Phone (3)
- Fúziós energiát vásárol a Google
- RETRO beárazás (mobil, PC, konzol)
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- További aktív témák...
- Eladó Apple Ipad Air 5 10 9 / M1 /WIFI + CELLULAR / 256GB Újszerű állapotban!
- GAMER PC RTX 3060 Ti 32GB RAM FULL HD / 1440p
- MSI Claw A1M 036 Konzol
- AKCIÓ!!! GAMER PC: Új i5-14400F +Új RTX 3080 +Új 16-64GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ!
- HP Prodesk 600 G3 mini PC i5 7500T / WIFI / 8GB DDR4 / 256GB SSD / Type-C / 3x DP
- Eladó Apple iPhone Xr 64GB fekete / ÚJ KIJELZŐ / 100% AKKU / 12 hónap jótállással!
- Corsair K100 Air wireless (CH-913A01U-DE) DE SN - A1E4G325503IVC
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- AKCIÓ! HP Elitedesk 800 G1 USDT mini asztali számítógép - i7 4770S 16GB RAM 128GB SSD Intel HD
- AKCIÓ! ASRock B85M Pro4 B85 chipset alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged