C语言:围圈报号排序问题
2023-09-27 14:22:46 时间
问题:
由n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是到3的人退出圈子,问最后留下的原来第几号的那位。
代码
#include <stdio.h>
int main()
{
int num[50],n,*p,j,loop,i,m,k;
printf("请输入这一圈人的数量:");
scanf("%d",&n);
p = num;
for(j = 0 ; j < n ; j++){
*(p+j) = j+1;
}
i = 0;
m = 0;
k = 0;
while(m<n-1){
if(*(p+i)!=0){
k++;
}
if(k==3){
k = 0;
*(p+i)=0;
m++;
}
i++;
if(i==n){
i = 0;
}
}
printf("现在剩下的人是:");
for(loop=0;loop<n;loop++){
if(num[loop]!=0){
printf("%2d号\n",num[loop]);
}
}
return 0;
}
相关文章
- 计算机等级考试二级C语言上机题集(第36~40套)
- 排序(3)---------冒泡排序(C语言实现)
- C语言希尔排序(解析)
- C语言基础MessageBox(......)用法详解
- 【转】C语言——八大排序
- 【C语言】strcpy函数_字符串拷贝【详解】
- 【C语言】空指针
- Android JNI编程(五)——C语言的静态内存分配、动态内存分配、动态创建数组
- C语言:结构体
- (第十列)C语言基础练习:打印杨辉三角,文字解释太烦,直接代码解析。
- (第六列)C语言最简单的排序方法,这两种必须懂:冒泡排序和交换排序。
- C语言 | 结构体成员数组赋值的问题
- C语言-字符串-指针-排序
- C语言-函数指针-快速排序算法
- C语言期末考试复习参考
- 归并排序(非递归)——C语言实现
- 快速排序(非递归)——C语言实现
- C语言 实现两种排序方法
- 1045 快速排序 (25 分)C语言
- C语言中strcpy(char *strDest, const char *strScr)字符串复制库函数的理解与分析
- C语言字符操作函数
- 【C语言】scanf语句吃掉回车或者空格问题详解