Hogyan lehet C nyelvben megkeresni tömbökben a második legkisebb/legnagyobb, második legkisebb páratlan elemet, stb?
Nem egészen, a pontos feladatot leírtam pár sorral feljebb. Először is fel kell tölteni a tömböt páratlan számokkal 100-tól növekvő értékkel (pipa). Másodszor meg kell keresni a legnagyobb értékű elemet a tömbben (pipa). Harmadszor meg kell keresni a második legkisebb értékű elemet a tömbben (ez a kérdésem).
Ehhez gondolom először a legkisebbet kell megkeresni.
Én döntően két megoldást látok erre, kezdjük először a butábbal.
Először megkeresed a legnagyobb elemet, ugye ez megy. Aztán megint végigmész a tömb elemein, és csak akkor rakod be a teszemazt maxB elembe a számot, ha az nagyobb, mint maxB addigi értéke ÉS nem egyenlő a maximummal.
Ennél talán okosabb, ha fogod az első két elemet, a nagyobbat berakod a max1-be, a kisebbet a max2-be, majd elkezdesz végigmenni a tömbön harmadik elemtől kezdve egy for ciklussal. Ha a t[i] nagyobb, mint max1, akkor max1-et berakod max2-be, ellenkező esetben megnézed, hogy max2-nél nagyobb-e, és ha igen, cseréled.
Erre gondoltál az első megoldásban:
for (i=0; i<100; i++)
{
min=t[0];
if (t[i]<min)
{
min=t[i];
}
}
for (i=0; i<100; i++)
{
min2=t[0];
if (t[i]<min2 && (!(min2=min)))
{
min2=t[i];
}
}
Ez nem lett jó, mert a min2-ben is a legkisebb elemet tölti be.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!