请教一个抛硬币的模拟程序,谢谢了
这是一个抛硬币的模拟程序#include <stdio.h>
#include <stdlib.h>
int heads()
{
return rand() < RAND_MAX/2;//这句是为了产生什么呢
}
main(int argc,char *argv[])
{
int i,j,cnt;
int N = atoi(argv[1]),M = atoi(argv[2]);//这句为啥是argv[1]和argv[2],argv【0】为啥不用呢?
int *f =(int *) malloc((N+1)*sizeof(int));
for(j=0;j<=N;j++)f[j]=0;
for(i=0;i<M;i++,f[cnt]++)
for(cnt=0,j=0;j<=N;j++)
if(heads()) cnt++;
for(j=0;j<=N;j++)
{
printf("%2d",j);
for(i=0;i<f[j];i+=10)printf("*");
printf("\n");
}
}
这个程序是抛N次,运行M次,用数组f记录i次正面朝上出现的次数,但是正面朝上在程序中是如何判断的我不太清楚请大侠帮忙看看 谢谢了