//模拟伯努利实验:这里,假设N=32 M=1000即表示抛硬币32次记录正面向上的次数的这样一个实验重复1000次。然后记录次数分别为0到32的次数。 #include<stdio.h> #include<stdlib.h> int heads() { return (rand()<RAND_MAX/2);//RAND_MAX是头文件中的一个常量 } main() { int i,j; int cnt; int N,M; int *f; scanf("%d,%d",&N,&M); f=malloc((N+1)*sizeof(int));//这里用malloc函数实现动态内存分配 for(i=0;i<=N;i++) { f[i]=0; } 注意内外层循环的N和M for(j=0;j<M;j++) { cnt=0; for(i=0;i<=N;i++) { if (heads()) { cnt++; } } f[cnt]++; } /// for(i=0;i<=N;i++) { printf("%2d",i); for(j=0;j<f[i];j+=2) printf("*"); printf("\n"); } }