目的:
通过写一个数字游戏的小程序,学习对C语言中数组的使用,各种循环控制的使用。
游戏过程:
用户输入参与人数,对所有人进行编号,用户输入要杀的人的编号,然后从1开始报数,数到杀人编号的人就要被杀,然后下一个人又接着从1报数,报到最后一个人又返回第一个人接着报数,被杀的人不再报数,直到剩下最后一个人。
程序运行结果:
杀人小游戏运行结果.gif
杀人小游戏运行结果.gif
程序分析:
1.首先接受用户从终端输入的参与人数,对每个人进行编号,定义一个数组num[100] 保存编号;然后接受用户输入的杀人编号,分别定义一个变量totalNumber 和 killNumber保存参与的人数和杀人的编号。
2.开始从第一个人报数。定义一个变量count 记录报的数字,使用for循环遍历数组元素。
a.报数前先判断这个人是否被杀死,没有被杀才进行报数。
b.如果报到杀人编号,该人需要被杀,用KILLED替换其值;定义一个变量totalKillNumber保存杀的人,每杀一个人,totalKillNumber++;count归0,下一个人重新开始报数。
c.判断是否该结束了,如果杀了totalNumber-1个人了,则退出循环了。
注意:定义一个宏: #define KILLED 0, 被杀的人可以将其编号赋值为KILLED以区分。
3.报到最后一个人了,返回到第一个人接着报数。
代码实现:
Xnip2019-08-03_13-00-50.png
Xnip2019-08-03_13-00-50.png
总结
今天学习了写一个数字游戏的小程序,加深了对数组和循环语句的理解和使用,也学到一些小技巧,比如
1.当将数组中被杀的人的值用定义的一个宏KILLED(0)替换,而不是删去这个数,这样后面的书不需要移动,效率也比较高;
2.报数到循环结束时,令i=-1;则又可以回到for循环开始继续报数。