报数游戏。有n个人围成一圈,按顺序从1到n编号。从第一个人开始报数,报到3的人退出圈子,下一个人从1重新开始报数,报到3的人退出圈子。如此下去,直到留下最后一个人。从键盘键入n的值,输出最后一个人的编号(用指针编程)。
时间: 2024-04-29 18:22:17 浏览: 69
报数游戏_报数_
5星 · 资源好评率100%
以下是使用指针实现报数游戏的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入n的值:";
cin >> n;
// 创建一个长度为n的动态数组
int* arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
// 模拟报数游戏
int count = 0; // 计数器
int* p = arr; // 指向当前报数的人
while (n > 1) {
if (*p != 0) { // 当前这个人还在圈子里
count++;
if (count == 3) { // 报到3的人退出圈子
*p = 0; // 将当前这个人标记为已退出
count = 0; // 重置计数器
n--; // 圈子的人数减1
}
}
p++; // 指向下一个人
if (p == arr + n) { // 如果已经到了数组末尾,就跳到开头
p = arr;
}
}
// 输出最后剩下的那个人的编号
for (int i = 0; i < n; i++) {
if (arr[i] != 0) {
cout << "最后一个人的编号是:" << arr[i] << endl;
break;
}
}
// 释放动态数组的内存
delete[] arr;
return 0;
}
```
阅读全文