程序:投硬币的模拟/问题:如何让程序用户自行定义数组长度
程序代码:
#include<stdio.h> #include<stdlib.h> int head() { return rand()<RAND_MAX/2;} main(int argc, char *argv[]) { int i,j,cnt; int N=atoi(argv[1]),M=atoi(argv[2]);//一次实验N为投硬币次数,M为试验次数 int *f=malloc((N+1)*sizeof(int)); for(j=0;j<=N;j++) f[j]=0; for(i;i<M;i++,f[cnt]++) if(head()) cnt++; for(j=0;j<=N;j++) { printf("%2d ",j); for(i=0;i<f[j];i+=10) printf("*"); printf("\n"); } }
如果要使用数组,则必须实现知道数组长度,为了用户程序输入数组长度N,则使用上面语句,能说说为什么这样写吗。