Kezdőoldal » Számítástechnika » Programozás » Kiválogatás tétele?

Kiválogatás tétele?

Figyelt kérdés

Nem ertem miert ir ki egyeseket es nullakat a miutan kiiratom a tombot. Igy irja ki:

1 nem egy

nem egy

1

1

0

0

1


//Kivalogatas 2tombbe

//Egy tomb elemi kozul szeretnenk kivalogatni egy bizonyos tulajdonsagot teljesito elemeket


//Valogassuk ki az 1eseket



int[] a = { 1, 2, 2, 1 };

int[] b = new int[a.Length];

int db = 0;


for (int i = 0; i <a.Length; i++)

{

if (a[i] == 1)

{

Console.WriteLine("1");

b[i] = a[i];

}

else

{

Console.WriteLine("nem egy");

}


}

for (int i = 0; i <b.Length; i++)

{

Console.WriteLine(b[i]);

}

Console.ReadKey();



2017. okt. 8. 21:21
 1/7 anonim ***** válasza:
100%

mert amikor b-t deklarálod, minden elemét 0-ra inicializálja, te pedig csak azokon az indexeken adsz értéket ahol az eredeti tömbben 1-es van


egyébként meg debuggolásról hallottál már?!?!

2017. okt. 8. 21:37
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
32%

Mert ez a kód azt csinálja amit mondtál neki.

Mindenesetre ez minden csak nem kiválogatás.

2017. okt. 8. 21:49
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
100%

Egzszerüsítsük le egy kicsit.

Van egy tömbünk.

int arr[10] = {1,2,3...10};

és ebből szeretnénk a párosokat (2vel osztható)

for(int i=0;i<10/*arr.length*/;++i)

if(arr[i]%2==0)

Console.WriteLine(arr[i].toString());

Végigmegyünk a tömbön egy ciklussal.

Megnézzük, hogy a tömb jelenlegi elemére igaz-e a feltételünk

Ha igaz csinálunk vele valamit.

Ha az a valami a másik tömbbe való beletevés, akkor kell egy változó amibe elraktározzuk, hogy melyik a legelső szabad hely, abba átmásoljuk a jelenlegi vizsgált elemet (ha igaz a feltétel) majd mivel a másik tömbben már írtunk arra a helyre ami a változó szerint a legelső helyet indexeli a változót meg kell változtatni az újabb pozira, ami az előző után van.

A kód:

int arr[10] = {0,1,2,3,4,5,6,7,8,9};

int arr2[10]; //azonos hosszú mivel lehet mindegyik elemére igaz a feltétel

int firstIndex=0;

for(i=0;i<arr.length;i++)


If(feltétel){

arr2[firstIndex]=arr[i];

firstIndex++;

}

Ui:a firstIndex++-t beteheted az arr2[firstIndex++]-e is és megspórolsz egy sort

2017. okt. 8. 22:12
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:

Pszeudo kod

Kivalogatas tetel


BE: x-T tomb, n-egesz(tomb hossza),P-logikai

KI: y-Tömb, db-egesz


fgv Kivalogatas (x,n,P)

y=Létrehoz(T)[n]

ciklus i=1 tol n-ig

ha P(x[i])akkor

db=db+1

y[db]=x[i]

elagazas vege

ciklus vege

vissza (y,db)

fgv vege


(az egyenloseg jel nyil akar lenni)


ezt a kodot szeretnem c# ban megvalositani egy egyszeru peldaval

Minden valaszt megkoszonok de nem kell anyazni igy is ki van a fa...


a feladat a tombbol b tombbe az egyeseket atiratni


int[] a = { 1, 2, 2, 1 };

int[] b = new int[a.Length];

int db = 0;


for (int i = 0; i <a.Length; i++)

{

if (a[i]==1)

{

db++;

b[db] = a[i];

}

}

Console.WriteLine(db);

for (int i = 0; i <b.Length; i++)

{

Console.WriteLine(b[i]);

}


Console.ReadKey();

2017. okt. 8. 22:13
 5/7 A kérdező kommentje:

Ok szal az elso hibam az volt h a db++ es az b[db]=a[i] sorokat felcsereltem

A masodik amit meg nem tom h fixaljak az hogy a a tomb ures (fel nem toltott elemeit (00)) hogy ne irattassam ki

2017. okt. 8. 22:19
 6/7 anonim ***** válasza:
49%

ByDöVéj:

var b = a.Where(x => x == 1).ToArray();

Vaaagy:

var b = Enumerable.Repeat(1, a.Count(x => x == 1)).ToArray();

2017. okt. 8. 22:21
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
73%

"A masodik amit meg nem tom h fixaljak az hogy a a tomb ures (fel nem toltott elemeit (00)) hogy ne irattassam ki"

Szó szerint így ahogy írod.

Csak annyi darab elemet írass ki, ahányat kiválogattál (db).

2017. okt. 8. 22:23
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!