C İle Programlama Yardım
-
ucenmi bunu yazdı:
-----------------------------DeadLyShadoW bunu yazdı:
-----------------------------ucenmi bunu yazdı:
-----------------------------gece gece sıkılıyordum dur yapayım hocam :D
-----------------------------
hocam yaparsan elin dert görmesin ya büyük adamsın derim bak =)
-----------------------------hocam aslında direk kodları yazacaktım ama sana işin mantığını anlatmam daha doğru olur.
şimdi gelelim mantığına işin:
şimdi senin öncelikle random sayı üretebilmen lazım bunun için dosyana stdlib.h dosyasını include et. şimdi bu kütüphane sayesinde c içindeki rand() fonksiyonunu kullanabileceksin. kullanımını bir örnekte gösterecek olursam.
int sayi;
sayi = rand();
bunu böyle yazarsan integer bir sayı üretir ama senin 1 ile 6 arasında bir sayı üretmen lazım işte bunun için bunu şu şekil kullanmalısın.
int sayi;
sayi = (rand()%6)+1;
buradakini kullanırsan sana 1 ve 6 aralığında random sayı üretir burdaki %6 nın nedeni rand() fonksiyonunun üreteceği integer herhangi bir sayının modunu alıyoruz böylece sayımız 0 ve 5 aralığında oluyor. e sen 1 ve 6 istemiştin işte bunun için +1 dedik.
şimdi gelelim 20 tane rastgele sayı oluşturup bunların her birinin kaçardefa geldiğini bulmaya
öncelikle for yapısını kullanman gerekiyor ve ayrıca her sayını tutman içi 6 elemanlı bir dizi tanımlayacaksın ve bütün elemanların ilk değerlerini 0 yapacaksın
bunu şöyle yaparsı:
int zar[6] = {0,0,0,0,0,0};
şimdi gelelim for yapımıza sen 20 defa üreteceğinden for 20 defa çalışacak ve for her döndüğünde üretilen sayının değerine göre zar dizisinde o üretilen sayının değeri bir arttırılacak. sayının değerine göre arttırma işleminide switch case yapısıyla yapacağız.
yapımıza gelirsek kısaca şöyle olacak:
int sayi;
for(int i = 0;i<20;i++){
sayi = (rand()%6)+1;
switch(sayi){
case 1:
zar[0]++;
break;
case 2:
zar[1]++;
break;
case 3:
zar[2]++;
break;
case 4:
zar[3]++;
break;
case 5:
zar[4]++;
break;
case 6:
zar[5]++;
break;
}
}
artık elinde hangi sayıdan kaç defa geldiği zar dizisinin içinde mevcuttur ekran çıktısınıda elindeki bu değerlere göre yapman gerekiyor.
umarım senin için yararlı olur
-----------------------------hocam for mantıgını biliyodum javadan da rand ı anlatman cok iyi oldu cok teşekkür ederim bundan sonrasını yapabilirim sanırım ellerin dert görmesin hocadan iyi anlattın bunu valla =)
-
bak şeyi unutmuşum rand() fonksiyonunu her seferinde başka bişi getirmesi çin
#include<time.h>
dosyasını include etmelisin ve
srand(time(NULL));
fonksiyonunu bir kere çağırmalısın
-
ucenmi bunu yazdı:
-----------------------------bak şeyi unutmuşum rand() fonksiyonunu her seferinde başka bişi getirmesi çin
#include
dosyasını include etmelisin ve
srand(time(NULL));
fonksiyonunu bir kere çağırmalısın
-----------------------------
belki bu complier a göre değişebilirde bunuda yaparım artık son haline baktıktan sonra teşekkür ediyorum tekrar =)