Linux环境下C语言实现报数游戏
2012-10-25 11:08
489 查看
题目:输入两个正整数 n 和 m( (1<m<n<=50)),有 n 个人围成一圈,按顺序从 1 到 n 编号。从第一个人开始报数,报数 m 的人退出圈子,下一个人从 1 开始重新报数,报数 m 的人退出圈子。如此循环,直到留下最后一个人。请按退出顺序输出退出圈子的人的编号,以及最后一个人的编号。
[liul@test baoshu]$ more BaoShu.c #include <stdio.h> #include <malloc.h> /********************************************************************* *以循环队列的数据结构实现 *时间复杂度T(n) *采用循环队列数据结构,使得每次对数组的访问次数减少到最少 **********************************************************************/ int main(void) { int i=0,num=1,die=0,front,rear,temp=0; while(num!=0) { printf("\n输入人数,小于零退出:"); scanf("%d",&num); printf("\n输入报到数:"); scanf("%d",&die); int *cycle=(int *)malloc((num+1)*sizeof(int)); for(i=0;i<=num;i++) { cycle[i]=i; } front=1; rear=num; i=1; while(front!=rear) { temp=(rear+1)%(num+1); cycle[temp]=cycle[front]; front=(front+1)%(num+1); if(i==die) { i=1; printf("%d出队\n",cycle[temp]); } else { i++; rear=(rear+1)%(num+1); cycle[rear]=cycle[temp]; } } printf("幸存者是%d\n",cycle[front]); free(cycle); num=0; } return 0; } [liul@test baoshu]$ gcc BaoShu.c -o BaoShu -Wall [liul@test baoshu]$ ./BaoShu 输入人数,小于零退出:9 输入报到数:5 5出队 1出队 7出队 4出队 3出队 6出队 9出队 2出队 幸存者是8 [liul@test baoshu]$
相关文章推荐
- Linux环境下C语言实现贪吃蛇游戏
- linux 环境下 c语言实现mysql数据库图片的存储以及多数据库直接的转存
- linux 环境下 c语言实现mysql数据库图片的存储以及多数据库直接的转存
- linux下使用C语言实现俄罗斯方块游戏
- linux下使用C语言实现2048简易字符界面游戏
- linux下GCC编译环境中二叉树遍历、C语言实现以及调试过程中段错误
- linux下用c语言实现约瑟夫环游戏
- linux环境下C语言实现非阻塞方式读取字符串数据的串口测试程序,即串口工具的编写
- linux环境下使用c语言实现shell(一)
- linux下使用C语言实现方块碰撞游戏
- Linux环境用C语言实现读取配置文件来区分产品的多个版本以及多个功能
- Linux 环境下C语言下实现密码输入无回显
- Linux环境下C语言实现简单的基于文件的学生信息管理系统
- C语言实现彩色进度条---linux环境下编译
- Linux 环境下C语言编译实现贪吃蛇游戏(转载)
- linux环境下C语言实现贪吃蛇游戏
- linux环境下用QT实现打地鼠游戏源码共享
- Linux环境架设Samba服务器 实现网络互访
- 一个Linux下c语言线程池的实现
- Linux下搭建Java环境变量并实现第一个Java小程序