Miért nem ad jó eredményt a lineáris keresés? (c#)
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();
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]);
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.
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 .
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.
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.
Nem.
Olvasd el a dokumentációt.
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!