[]

c++ bir sayıya en yakın sayıyı bulmak

c++ ile basit bir asansör programı yazıyorum. temel olarak, 10 katlı binada 2 asansör var ve kişi tek bir düğmeyle bu asansörleri çağırabiliyor. çağırılan kata en yakın asansör hangisiyse o gelecek, ikisi de aynı mesafedeyse sağdaki gelecek şeklinde bir problem. son aşamaya geldim ve tıkandım.

asansörlerin katları ve kişinin çağırdığı kat arasındaki kıyaslamayı nasıl yapabilirim ? örneğin asansörün birisi 1. katta, diğeri 4. kattayken kişi 3. kattan çağırırsa 4. kattaki asansörün gelmesi gerek. bir sayıya olan en yakın sayıyı bulmalıyım yani ama çıkamadım içinden. gerekirse kodu da paylaşabilirim ama biraz uzun sayılır.


 
Yanlış anlamadıysam soruyu şöyle basit şekilde çözülebilir gibi.
Kişinin bulunduğu katı asansörlerin bulunduğu kattan çıkarın ve çıkan değerin mutlak değerini alın.Hangisi daha küçükse ona ait asansörü çağırın.
Örnek editi :
A kişinin katı B ve C Asansör katları.abs fonksiyonu stdlib.h içerisinde tanımlı.
if(abs(A-B)<(A-C))
cagir(B)
else
cagir(C)
  • bu_ne_bicim_nick  (22.05.17 20:10:06 ~ 20:16:21) 
C++ bilmiyorum ama c# olsaydı if kullanırdım. A senin bulunduğun kat B ve C asansör katları.
İf( A-B> A-C)
C asansörü gelecek. Bu çıkarma işlemlerini mutlak değer içine alma varsa sonuç daha doğru olur. Eğer öyle bir şey yoksa onun için ayrı kod gerek.
İf( A-B< A-C)
B asansörü gelecek.

Umarım doğru anlamışımdır sorunu.
  • uyusam iyi olur  (22.05.17 20:10:58) 
uzaklık eşit olduğunda ne olacak? ikisi de mi gelecek? hiç teknolojik değil. bence kod yazarken bunu da düşün hocam.


  • blue eyes white dragon  (22.05.17 20:58:03) 
aynı gelirse rassal sayı üret tek sayı gelirse B asansörü, çift gelirse c asansörü gelsin :)


  • uyusam iyi olur  (22.05.17 21:14:47) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.