黑马程序员-C语言-约瑟夫环
2015-12-19 21:59
435 查看
——- ios培训、ios培训、期待与您交流! ———-
/* 10、 耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。(C语言) */ #include <stdio.h> /* 思路: 1.用一个数组存放15个序号; 2.用number来表示数组中还存在的不是0的序号; 3.使用count统计报数报到几; 4.如果报到3就把这个序号变为0; 5.当数组中还有2个或2个以上不为0的序号的时候就循环 6.循环变量i,记录当前第几个人在报数,如果到最后一个,报数完成后让第一个继续报数 */ int main(int argc, const char * argv[]) { int arr[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int count=0;//报数器 int number=15;//number记录不为0的序号个数 while (number>1) { for (int i=0; i<15; i++) { //控制不为0的序号才能进入序列 if (arr[i]!=0) { count++; //控制报数器为1-3 if (count==3) { arr[i]=0;//序号变为0 number--;//人数就减1 count=0;//报数器归零,这样下一个序号就从1开始报数了 } } } } //遍历所有的序号,把不为0的序号取出来,就是没有报过3的那个序号 for(int t=0;t<15;t++){ if (arr[t]!=0) { printf("出卖耶稣的叛徒的序号为:%d\n",arr[t]); } } return 0; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法