C++/Oyun Programlama

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Uzman Üye
Katılım
25 Ocak 2016
Mesajlar
182
Tepki puanı
1
Yaş
29
10 HİZMET YILI
[font=Trebuchet MS, Helvetica, Arial, sans-serif] [/FONT][font=Roboto, serif]===Mahkum Problemi===[/FONT]
[font=Roboto, serif][Hide][/Hide][Hide][/hide][Hide][/FONT]


[font=Roboto, serif]Problem şu ;[/FONT]
[font=Roboto, serif]bir masanın etrafında 21 tane mahkum vardır..[/FONT]
[font=Roboto, serif]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?[/FONT]
[font=Roboto, serif]Bu arada kodlara bakmadan algoritmayı oluşturmaya çalışın , zihin açıcı bir soru bence...[/FONT]

[font=Roboto, serif]Benim geliştirdiğim kodlar;[/FONT]

[font=Roboto, serif]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][/FONT]
 
Üye
Katılım
2 Şub 2016
Mesajlar
1
Tepki puanı
0
Ödüller
9
10 HİZMET YILI
Cvp: C++/Oyun Programlama

Yorum YaZDIM :D
 
Uzman Üye
Katılım
25 Ocak 2016
Mesajlar
182
Tepki puanı
1
Yaş
29
10 HİZMET YILI
Deneyebilirsiniz Çalısıyor.

İYİ FORUMLAR
 
Onaylı Üye
Katılım
11 Şub 2016
Mesajlar
88
Tepki puanı
0
10 HİZMET YILI
kardeşim ben şu kodlama işine çok meraklıyım ancak kimse anlatmıyor şu C++ dilini çok zor diyorlar uğraşamam diyorlar
eğer sende skype team speak felan varsa bana şu dili bi öğretsen
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst