lostyazilim

c# dizi içinde sıra bulma

6 Mesajlar 1.564 Okunma
lstbozum
wmaraci reklam

bilg bilg WM Aracı Kullanıcı
  • Üyelik 05.06.2014
  • Yaş/Cinsiyet 29 / K
  • Meslek ogrenci
  • Konum Batman
  • Ad Soyad Z** Ş**
  • Mesajlar 13
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
Merhaba şöyle bir kod yazdım
static void Main(string[] args)
{
int i = 0;

int eb = 11;
int ek = -1;
int bakilan = 0;
int[] dizi = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
Console.WriteLine("aranan sayı=");
int sayı = Convert.ToInt32(Console.ReadLine());

while ( sayı > dizi[i])
{

bakilan = (eb + ek) / 2;
if (dizi[bakilan] == sayı )

{


Console.WriteLine("{0} sıradan sonra ", bakilan);
break;
}

else if( sayı > dizi[bakilan])
{

ek = bakilan+1;
Console.WriteLine("{0} sıradan sonra ", eb);



}
else
{

eb = bakilan-1;


}


}

Console.ReadLine();

}

}
}



istediğim şey klavyeden istenen herhangi bir sayının kaçıncı sırada olduğunu bulmasdır.Sonuç doğru çıkıyor fakat sonsuz defa sonucu yazıyor
 

 

wmaraci
reklam

mrgun mrgun Seo yazılım Kullanıcı
  • Üyelik 18.01.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 280
  • Beğeniler 109 / 79
  • Ticaret 26, (%100)
else
{
eb = bakilan-1;
}
break;


böyle dener misiniz, else den sonra break yazın
 

 

bilg bilg WM Aracı Kullanıcı
  • Üyelik 05.06.2014
  • Yaş/Cinsiyet 29 / K
  • Meslek ogrenci
  • Konum Batman
  • Ad Soyad Z** Ş**
  • Mesajlar 13
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
teşekür ederim ama çalışmadı
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
loop -> iterator

order = index++
if(sayi == iterator[index]){
break;
}

order -> sıra;


basit bir mantık..
 

 

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
wmaraci

ytre10 ytre10 Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 23.01.2015
  • Yaş/Cinsiyet 44 / E
  • Meslek CTO
  • Konum İstanbul Anadolu
  • Ad Soyad H** B**
  • Mesajlar 163
  • Beğeniler 17 / 30
  • Ticaret 12, (%100)
bence while döngüsünü mümkün olmadıkça kullanma.
bunun yerine for foreach kullan.

ikinci olarak array yerine list vs kullanmak daha esnek bir yapıya sahip olmanı sağlayacaktır.
Şuan senin kodunda bir bildiğin oldugunu farz ederek, aşağıda ki şekilde üzenlemen halinde çalısacaktır.

int[] dizi = { 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
var searhcNumber = 30;
var counter = 0;
foreach (var item in dizi) {
if (item == searhcNumber) {
////aranan numara bu
// bulunan counter;
break;
}

counter++;
}
 

 

bilg bilg WM Aracı Kullanıcı
  • Üyelik 05.06.2014
  • Yaş/Cinsiyet 29 / K
  • Meslek ogrenci
  • Konum Batman
  • Ad Soyad Z** Ş**
  • Mesajlar 13
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
foreach ile yapınca sorun kalktı ortadan teşekür ederim
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al