一个“恐怖”的杀人游戏!

今天我们来谈谈一个恐怖的杀人游戏!

需要用到

  • define killed 0;一个宏定义(取别名)将0取别名为killed。目的 1. 增强可操作性 2. 增强阅读性

游戏说明(被杀(killed即0))

输入参与游戏的人数如5,就将这无人依次排好序1,2,3,4,5。然后输入要杀的人的编号如3,就将第三个人杀掉(为killed即0),从后一个数再从1开始数数到3又杀掉。数到最后又倒回来从第一个开始,被杀的虽然显示为0,但已经被杀所以数数的时候不计。如此直到最后剩下一个最后人。
例如
参与人数7
要杀的人2第1次剩下 : 1,0,3,4,5,6,7第2次剩下 : 1,0,3,0,5,6,7第3次剩下 : 1,0,3,0,5,0,7第4次剩下 : 0,0,3,0,5,0,7第5次剩下 : 0,0,3,0,0,0,7第6次剩下 : 0,0,0,0,0,0,7
所以最后存活下来的是第7个人。

代码如下:

int main(){
    int num[50] = {}; //保存每个人的编号
    int count = 0 ; //保存输入的人数 
    int killNum = 0; //被杀的人的编号
     
    printf("请输入参与人数:");
    scanf("%d", &count);
    
    //开始编号
    for(int i = 0; i < count; i++){
        num[i] = i+1;
        printf("%d  ",num[i]) ;
    } 
    
    printf("请输入杀人的编号:");
    scanf("%d", &killNum); 
    
    //开始游戏
    int current = 0; //记录当前报数的位置 
    int totalKilled = 0; //记录当前死亡人数 
    for(int i = 0; i < count; i++){
        //i指向的这个人开始报数 
        if(num[i] != KILLED){
            current++;
        }
        
        //判断当前编号是不是死亡编号
        if(current == killNum){
            printf("死亡编号%d \n", num[i]); 
            
            //杀掉
            num[i] = KILLED;
            
            //还原 
            current = 0;
            
            totalKilled++;
            
            //当还剩一个的时候就退出循环 
            if(totalKilled == count-1){
                break;
            } 
        } 
        
        //判断是否到末尾了
        if (i == count-1){
            i = -1;
        } 
    }
     
     for(int i = 0; i < count; i++){
        printf("%d ", num[i]);
     } 
    return 0;
}
QQ截图20191202125816.jpg

是不是非常有趣呢?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值