C++/Oyun Programlama


C ve C++ Programlama    C ve C++ Programlama İle İlgili Paylaşım Kategorisi

Yazar: TRUlkucuBey    65 Yorum    2117 Görüntüleme

Paylaşım Tarihi: 31.01.2016, 22:54:14 #1
TRUlkucuBey Dedeye Sahip Çıkalım
Onaylı Uye
Status: Çevrimdışı Yorumları:189 Konuları:50 Kayıt Tarihi:25.01.2016 Rep Puanı: 13

 ===Mahkum Problemi===
[Hide]


Problem şu ;
bir masanın etrafında 21 tane mahkum vardır..
1. mahkumdan başlamak üzere 1. mahkumdan sonra gelen hayatta olan ilk 2 mahkumdan 2.si ölecek daha sonra o ölen mahkumdan sonra gelen ilk hayatta olan mahkumdan sonraki ilk 2 mahkumdan 2. ölecek ve bu böyle devam edecek ta ki hayatta 1 kişi kalana kadar,hayatta kalan mahkum hangisidir?
Bu arada kodlara bakmadan algoritmayı oluşturmaya çalışın , zihin açıcı bir soru bence...

Benim geliştirdiğim kodlar;

Kod:
#include<stdio.h> #include<conio.h> main() { int A[21]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; //Mahkumların hepsine 1 degeri verdim,yaşadıklarını belirtmek için. int i,j,n,sayac,x; i=0; // 1. mahkumdan başlandığı için i=0 başlangıç değeri verdim. while(1) { sayac=0;x=0;n=i+1; while(1){ if(n>20) n=0; if(A[n]==1) sayac++; //Hayatta olan mahkumdan sonraki hayatta olan ilk iki mahkumu bulmak icin, if(sayac==2) break; //sonsuz döngü açtım,bu ilk iki mahkumdan ikincisine ulaştığımda döngüyü kırdım, n++; //çünkü ölücek olan ikinci mahkum olacak, } A[n]=0;//döngüyü kırdıktan sonra o makuma 0 değeri vererek öldürdüm. while(1) { n++; //öldürdüğüm mahkumdan sonra gelen ilk hayattaki mahkumu bulmak için, if(n>20) n=0; //yine sonsuz bir döngü açtım,çünkü bi yerden sonra ölü mahkumdan sonra gelen, if(A[n]==1) {i=n;break;} // mahkumda ölü olabilir,yani 18.=0,19.=0 olabilirdi. } for(j=0;j<21;j++) { if(A[j]==1) x++;} // for döngüsüyle hayatta kalan tek 1 kişi olup olmadığını kontrol ettim, if(x==1) break; //eğer 1 kişi kalmışsa en baştaki sonsuz döngüyü kırıp çıktım.. } for(j=0;j<21;j++) {if(A[j]==1) { printf("%d",j+1);break;} // son olarak hayatta olan kişiyi indis numarısıyla buldum.. //indis numarasını 1 arttırım çünkü A[0] 1. kişiyi temsil ediyo aslında. } getch();return 0; } [/Hide]
Son Düzenleme: 31.01.2016, 22:55:45, Düzenleyen: TRUlkucuBey.

Kullanıcı İmzası
[img=0x147]http://i.hizliresim.com/rZGljz.png[/img]

Paylaşım Tarihi: 02.02.2016, 00:15:53 #2
wiey Çömez
Kayıtlı Üye
Status: Çevrimdışı Yorumları:2 Konuları:0 Kayıt Tarihi:02.02.2016 Rep Puanı: 0

Yorum YaZDIM Big Grin

Paylaşım Tarihi: 02.02.2016, 16:28:00 #3
harun593 Delikanlı
Onaylı Uye
Status: Çevrimdışı Yorumları:135 Konuları:20 Kayıt Tarihi:02.01.2016 Rep Puanı: 19

deneyecem

Kullanıcı İmzası
Y49N4a.jpg

Paylaşım Tarihi: 03.02.2016, 16:43:12 #4
TRUlkucuBey Dedeye Sahip Çıkalım
Onaylı Uye
Status: Çevrimdışı Yorumları:189 Konuları:50 Kayıt Tarihi:25.01.2016 Rep Puanı: 13

Deneyebilirsiniz Çalısıyor.

Kullanıcı İmzası
[img=0x147]http://i.hizliresim.com/rZGljz.png[/img]

Paylaşım Tarihi: 03.02.2016, 16:44:03 #5
TRUlkucuBey Dedeye Sahip Çıkalım
Onaylı Uye
Status: Çevrimdışı Yorumları:189 Konuları:50 Kayıt Tarihi:25.01.2016 Rep Puanı: 13

Deneyebilirsiniz Çalısıyor.

İYİ FORUMLAR

Kullanıcı İmzası
[img=0x147]http://i.hizliresim.com/rZGljz.png[/img]

Paylaşım Tarihi: 08.02.2016, 21:06:42 #6
Ghostman Yeğen
Aktif Üye
Status: Çevrimdışı Yorumları:18 Konuları:3 Kayıt Tarihi:16.01.2016 Rep Puanı: 0

bakıorm hemen

Paylaşım Tarihi: 08.02.2016, 21:19:59 #7
ALBAYRAK Delikanlı
Onaylı Uye
Status: Çevrimdışı Yorumları:66 Konuları:5 Kayıt Tarihi:28.01.2016 Rep Puanı: 4

Bakalim

Kullanıcı İmzası
4rmzr4.png


Paylaşım Tarihi: 09.02.2016, 03:44:26 #8
selman9924 Yeğen
Aktif Üye
Status: Çevrimdışı Yorumları:18 Konuları:2 Kayıt Tarihi:10.01.2016 Rep Puanı: 0

dedeee yanıyo




Önceki Konu Sonraki Konu





Aradığınızı Bulamadınız Mı ?

Konuyu Okuyanlar:
1 Ziyaretçi