1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C语言用一维数组模拟抛硬币 模拟抛硬币(C语言实现)

C语言用一维数组模拟抛硬币 模拟抛硬币(C语言实现)

时间:2019-08-22 14:13:22

相关推荐

C语言用一维数组模拟抛硬币 模拟抛硬币(C语言实现)

实现代码:

1 #include

2 #include

3

4 intheads()5 {6 return rand() < RAND_MAX/2;7 }8

9 int main(int argc, char *argv[])10 {11 inti,j,cnt;12 int N = atoi(argv[1]), M = atoi(argv[2]);13 int *f = malloc((N+1)*sizeof(int));14

15 for(j=0; j<=N; j++) f[j] = 0;16 for(i=0; i

18 if(heads())cnt++;19

20 for(j=0; j<=N; j++)21 {22 printf("%2d", j);23 for(i=0; i

27 system("pause");28 return 0;29 }

该程序引自《算法:C语言实现(第1~4部分)》,主要学习基于计算出的值作为数组索引的操作。

第17行代码中注释处为做的修改,原书中为j<=N,我认为应该为j

将代码保存为coin.c,编译生成coin.exe. 假设模拟1000次的“抛硬币32次”,即N=32,M=1000,通过命令行向main()函数传递这两个参数并执行,结果如下:

D:\>coin.exe 32 1000

0

1

2

3

4

5

6 *

7 *

8 *

9 *

10 **

11 ****

12 ******

13 ********

14 ************

15 *************

16 **************

17 *************

18 *************

19 ********

20 ******

21 ***

22 *

23 *

24 *

25 *

26

27

28

29

30

31

32

请按任意键继续. . .

图中每个星号代表10次出现正面。

假设模拟10000次的“抛硬币32次”,即N=32,M=10000,并将代码中第23行i+=10改为i+=20后重新编译生成coin.exe,通过命令行向main()函数传递N、M两个参数并执行,其结果如下:

D:\>coin.exe 32 10000

0

1

2

3

4

5

6 *

7 *

8 **

9 ****

10 *********

11 ***************

12 ****************************

13 ****************************************

14 *****************************************************

15 ********************************************************************

16 ***************************************************************************

17 ******************************************************************

18 *********************************************************

19 ****************************************

20 **************************

21 *************

22 ********

23 ***

24 *

25 *

26 *

27

28 *

29

30

31

32

请按任意键继续. . .

参考文献:《算法:C语言实现(第1~4部分)》,机械工业出版社,.8

原文:/geekham/p/4097472.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。