碰到的C语言的关于循环取数的方法

碰到的小问题


问题如下:

耶稣有15个门徒,其中有一个就是出卖耶稣叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。


看下这个方法:

#include "stdio.h"

void main()

{

    inta[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

    int number = 15;//人数

    int count =0;//1,2,3报数

    int i = 0;

    while (number >1)

    {

        if (a[i] != 0)

        {

           count++;//开始报数

        }

        if (count == 3)

        {

            a[i] = 0;//后面循环剔除

            count =0;//重新1,2,3报数

            number--;

        }

        i++;

        if (i == 15)

        {

            i = 0;

        }

    }

    for ( i = 0; i <15; i++) {

        if (a[i] != 0|| a[i] > 0) {

           printf("出卖耶稣的是:%d", a[i]);

        }

    }

   

   

}

看了好多实现方法,就这个比较好一点,很符合我的一般思路,很好理解吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值