12 Aralık 2012 Çarşamba

array-2 problem


    1. İki adet zar atan bir program yazınız. Her iki zarıda atmak için rand fonksiyonun kullanın. Daha sonra bu iki sayıyı toplatın. Not: Her zar atışının sonucu 1-6 arasında olacağı için, iki zarın toplamını da 2-12 arasında olacaktır. Toplamın 7 gelmesi en büyük olasılığa, 2 ve 12 gelmesi de en küçük olasılıklara sahiptir.Şekil 6.23, mümkün olan 36 olasılığı göstermektedir. Programınız iki zarı 36000 kez atsın ve tek belirteçli bir dizi kullanarak bu zar toplamlarını diziye sırasıyla yazın. Sonuçlar çizelge şeklinde ekrana yazdırın. Sonuçların doğru olup olmadığını da kontrol edin. İki zarın toplamının 7 olmasının 6 yolu vardır. Yani atılan zarlarda elde edilen toplam sonuçların 6’da biri 7 olmalıdır.





#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int zarAt(void);

int main()
{



/**/
int i;
int j;
int toplam;
int frekans[13]={0};

int a[36000];

srand(time(NULL));
for(i=0;i<=36000-1;i++)
{
toplam=zarAt();
a[i]=toplam;
}

for(j=0;j<=36000-1;j++)
++frekans[a[j]];

toplam=0;
 
for(j=2;j<=12;j++)
{
printf("%d  ",frekans[j]);
toplam+=frekans[j];
}
printf("\nTOPLAM=%d\n",toplam);
return 0;
}

int zarAt(void)
{
int x,y;
x=1+rand()%6;
y=1+rand()%6;
return x+y;

}


Hiç yorum yok:

Yorum Gönder