黑马程序员技术交流社区
标题:
耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排...
[打印本页]
作者:
恋梦
时间:
2015-2-8 00:32
标题:
耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排...
同样,废话不多说,这种算法网上很多,就黑马里面也很多,但我看都比较复杂,也有超级简单的,但那都是神人写的这个算法也算比较明晰的,但愿不要因为是重复贴而被删了,如果你认为看的最容易懂的,就请顶一下
#include <stdio.h>
int main()
{
// 定义一个数组a保存耶稣的15个门徒
int a[15] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
// 定义总个数为15,count用来记录报名的次数,i为变量
int number = 15, count = 0, i = 0;
// 如果总人数在1以上就进入循环
while (number > 1)
{
// 数组元素从1开始每循环一次如果没有低于0的,都报次名
if (a[i] != 0)
{
count++;
}
// 当报名到3时,就进入循环
if (count == 3)
{
a[i] = 0; // 进入循环后,让报名的这次数组元素归0,就是退出
count = 0; // 计数归0,从新报名
number--; // 由于有个人退出了,所以总人数-1
}
i++; // 元素加1,保证循环
if (i == 15) // 由于是围成一圈,当循环一圈时,值为15时,强制将其设置为0,继续循环
{
i = 0;
}
}
// 循环遍历数组a的每个值
for (int i = 0; i < 15; i++)
{
// 只打印剩下最后那个大于0的值
if (a[i] > 0)
{
// 打印叛徒
printf("叛徒原来的序号是%d\n",a[i]);
}
}
// 程序归零正常退出
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2