Kezdőoldal » Számítástechnika » Programozás » C#-ban egy tömbön belül hogy...

C#-ban egy tömbön belül hogy tudom megnézni, hogy mennyi 0 van egymás után? És ahol a legkevesebb 0 van egymás után azt kéne kiírni

Figyelt kérdés

2019. ápr. 21. 11:33
 1/6 anonim ***** válasza:

Pont ugyanúgy, mintha a való életben tennéd. Van egy csomó dobozod, mindegyikben gyümölcs. Keresed azt a ládát, ahol legkevesebb banán van egymás után.


Nyilván végignézed, számolod, hol mennyi van, megjegyzed, és a végén megállapítod az eredményt.

2019. ápr. 21. 11:38
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Ezt így nyílván értem, de nem a feladat megértésében van a baj, hanem a kódolásával :|
2019. ápr. 21. 11:46
 3/6 anonim ***** válasza:
Számlálás és maximun kiválasztás programozási tételekkel.
2019. ápr. 21. 11:53
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

Ez egy tök jó példa az állapotgépek használatára, még ha hosszabb is a kódja, mint egy IQ-ból írt implementációnak:


lehetségesÁllapotok = [AzElőzőSzámNullaVolt, AzElőzőSzámNemNullaVolt, Kezdőállapot]

éppenKiválasztottElemIndexe = 0


aktuálisÁllapot = lehetségesÁllapotok.Kezdőállapot


aktuálisNullaSorozatHossza = 0

legrövidebbNullaSorozatHossza = legnagyobbÁbrázolhatóEgészSzám


amíg (éppenKiválasztottElemIndexe < tömbElemeinekSzáma) {

.. ha (aktuálisÁllapot == lehetségesÁllapotok.Kezdőállapot) {

.. .. ha (tömb[éppenKiválasztottElemIndexe] == 0) {

.. .. .. aktuálisÁllapot = lehetségesÁllapotok.AzElőzőSzámNullaVolt

.. .. .. aktuálisNullaSorozatHossza = 1

.. .. egyébként {

.. .. .. aktuálisÁllapot = lehetségesÁllapotok.AzElőzőSzámNemNullaVolt

.. .. }

.. }

..

.. egyébként ha (aktuálisÁllapot == lehetségesÁllapotok.AzElőzőSzámNullaVolt) {

.. .. ha (tömb[éppenKiválasztottElemIndexe] == 0) {

.. .. .. aktuálisNullaSorozatHossza növelése eggyel

.. .. }

.. .. egyébként {

.. .. .. aktuálisÁllapot = lehetségesÁllapotok.AzElőzőSzámNemNullaVolt

.. .. ..

.. .. .. ha (aktuálisNullaSorozatHossza < legrövidebbNullaSorozatHossza)

.. .. .. .. legrövidebbNullaSorozatHossza = aktuálisNullaSorozatHossza

.. .. }

.. }

..

.. egyébként ha (aktuálisÁllapot == lehetségesÁllapotok.AzElőzőSzámNemNullaVolt) {

.. .. ha (tömb[éppenKiválasztottElemIndexe] == 0) {

.. .. .. aktuálisNullaSorozatHossza = 1

.. .. .. aktuálisÁllapot = lehetségesÁllapotok.AzElőzőSzámNullaVolt

.. .. }

.. }

..

.. éppenKiválasztottElemIndexe növelése eggyel

}

2019. ápr. 21. 16:59
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

#4 csak kíváncsiságból: mi értelme van egy ilyet használni? Értem, hogy hova akarsz kilyukadni, de teljesen fölösleges.

Valahogy ennyivel is el lehet végezni:


int jelenlegisorozat = 0;

int legkisebbsorozat = 0;


for(int i = 0;i<tömb elemeinek száma;i++)

{

if(tömb[i] == 0) {

//eggyel megnöveljük a jelenlegi sorozat elemét

jelenlegisorozat++;

} else {

//ha a jelenlegi elem nem nulla, akkor megnézzük, hogy eddig nullák voltak-e

//ha nem, akkor semmi érdekes nem történt, megyünk tovább

//ha igen, akkor megnézzük, hogy ez rövidebb sorozat-e az eddiginél

if(jelenlegisorozat != 0) {

//eddig nullás sorozat volt

if(jelenlegisorozat < legkisebbsorozat) {

//csere

legkisebbsorozat = jelenlegisorozat

}

//mivel az eddigi sorozat megtört, vissza kell állítanunk a jelenlegit nullára

jelenlegisorozat = 0;

}

}


}

2019. ápr. 21. 20:18
Hasznos számodra ez a válasz?
 6/6 tabaki ***** válasza:
2019. ápr. 21. 20:40
Hasznos számodra ez a válasz?

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!