Kezdőoldal » Számítástechnika » Programozás » Miért nem ad jó eredményt a...

2105as kérdése:

Miért nem ad jó eredményt a lineáris keresés? (c#)

Figyelt kérdés

Feladat :

Egy telefonkönyv a nevek szerint rendezett. Keressük meg benne egy adott névhez tartozó telefonszámot!


Csak nekem a if vagy nem írja ki vagy azt írja, hogy nem szerepel a megadott név, holott szerepel.


Console.WriteLine("Telefonkönyvben keres név szerint.");

Console.WriteLine("Kerem adja meg, hogy hány elemű legyen a telefonkönyv.");

int elem = Convert.ToInt32(Console.ReadLine());

String[] nev = new string[elem];

String[] tel = new string[elem];

int i = 0;


String[] korzet = new string[3] { "30", "20", "70" };


Random rnd = new Random();



Random r = new Random();



Console.WriteLine();


Console.WriteLine("Kerem a neveket abc sorrendben megadni.");

for ( i = 0; i < nev.Length; i++)

{

int elso = rnd.Next(0,2+1);


string k1 = korzet[elso];



int masodik = r.Next(1000000,9999999);

string k2 = Convert.ToString(masodik);



Console.Write("Kerem adja meg a(z) {0} szeméylnek a nevét: ",i+1);

nev[i] = Console.ReadLine();



tel[i] = ("06"+" "+k1+" "+ k2);

}

Console.WriteLine();

Console.WriteLine();

for ( i = 0; i < elem; i++)

{

Console.WriteLine("A(z) {0}. személy neve: {1} telefonszáma : {2}",i+1,nev[i],tel[i]);


}

Console.WriteLine();

Console.Write("Kérem adj meg a keresett személy nevét : ");

string keres = Console.ReadLine();

int j = 0;

while (j < elem && nev[j] != "keres")

{

j++;

}


if (j<elem)

Console.WriteLine("A keresett névhez tartozó telefon szám : {}",tel[j]);

else

Console.WriteLine("A megadott név nem szerepel a telefonkönyvben.");



Console.ReadKey();


2017. febr. 25. 16:04
1 2
 1/11 A kérdező kommentje:

a program végébe hiba van

"Console.WriteLine("A keresett névhez tartozó telefon szám : {}",tel[j]); "


*

javítva :

Console.WriteLine("A keresett névhez tartozó telefon szám : {0}",tel[j]);

2017. febr. 25. 16:06
 2/11 anonim ***** válasza:
nev[j] != "keres"
2017. febr. 25. 16:12
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
Azért mert a változó nevét idézőjelek közé tetted. 😃
2017. febr. 25. 16:13
Hasznos számodra ez a válasz?
 4/11 A kérdező kommentje:

Köszönöm szépen, én is rájöttem már csak mikor felteszem a kérdést nem tudom aztán néha rájövök :) .


Amúgy logaritmikus kereséssel, hogyan lehetne megcsinálni ?

Mivel ott el kell dönteni, hogy a középső elem az kisebb vagy nagyobb mint a keresett elem.

De ezt szövegnél hogy adjuk meg ?

pl : a>b hiba ként kezeli.

2017. febr. 25. 16:19
 5/11 anonim ***** válasza:
Ugyanúgy.
2017. febr. 25. 16:25
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

Ez most nem értem.

"Ugyanúgy" ??

a logaritmikus az felezgeti a tömböt, de ha a középső elem nem a keresett akkor honnan tudja, hogy tömb közepétől számítva az első vagy a második részben vizsgálódjon csak .

2017. febr. 25. 16:30
 7/11 anonim ***** válasza:

Onnan, hogy a logaritmikus keresésnek előfeltétele a rendezett adatstuktúra.

C#-ban értelmezve van string-ekre a rendezés, így semmi extra dolgod nincs.

2017. febr. 25. 17:16
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

Hahh, a kacsacsőr operátor nincs megvalósítva, amit mondjuk nem nagyon értek miért.

Akkor a Compare statikus függvény a barátod.

2017. febr. 25. 17:18
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:
Ha megkérném írnál egy rövid kis példát ?
2017. febr. 25. 17:22
 10/11 anonim ***** válasza:

Nem.

Olvasd el a dokumentációt.

2017. febr. 25. 18:22
Hasznos számodra ez a válasz?
1 2

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!