有15个人围成一圈,顺序从1到5编号,从第一个人开始报数,凡报到n的人退出圈子。用C语言写出程序,输入n的值,输出最后留在圈子里的人的编号
时间: 2024-12-16 17:32:44 浏览: 5
你可以使用一个循环和条件判断来编写这个程序。以下是一个简单的C语言实现示例:
```c
#include <stdio.h>
int main() {
int n, count = 0;
printf("请输入每个人需要报的数字n:");
scanf("%d", &n);
// 人数数组表示当前圈子的状态,初始化所有人为1(表示还在圈内)
int circle[15] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
// 当圈子人数大于1时继续
while (count != 1) {
count = 0; // 用于记录剩余人数
// 遍历圈子
for (int i = 0; i < 15; i++) {
if (circle[i] == n) {
// 报到n的人退出
circle[i] = 0;
} else {
count++; // 没被淘汰的人计数++
// 移动指针到下一个位置(考虑到圈子的封闭性)
i = (i + 1) % 15;
}
}
}
// 输出最后一个留下的编号
printf("最后留在圈子里的人的编号是:%d\n", circle[0]);
return 0;
}
```
阅读全文