|
发表于 2024-7-2 21:45:07
|
显示全部楼层
本帖最后由 MUYIXUE 于 2024-7-2 21:46 编辑
- #include <stdio.h>
- #define ARR_SIZE 41
- void fishc(int arr[], int arrsize, int startnum, int read_num);
- int main() {
- int arr[ARR_SIZE];//假设有40人参与了游戏
- for (int i = 0; i < ARR_SIZE; i++) {
- arr[i] = 0;
- }//此时没有一个人死亡
- fishc(arr, ARR_SIZE, 0, 3);
- for (int i = 0; i < ARR_SIZE; i++) {
-
- printf("%3d", arr[i]);
- }
- return 0;
- }
- //0表示此座位1人没有死去,数字表示死去的顺序
- void fishc(int arr[],int arrsize,int startnum ,int read_num) {
- static int counter = 0;//用来标记死亡总数
- int counter_of_reader = 0;//报数的人数
- int i = 0;//问话从startnum开始
- for (;;) {
- if (counter_of_reader < read_num) {
- if (arr[(startnum + i) % arrsize] == 0) {
- counter_of_reader++;
- }
- }
- else {
- arr[(startnum + i - 1) % arrsize] = ++counter;
- break;
- }
- i++;
-
- }
- if (arrsize - counter > 2) {
- fishc(arr, arrsize, startnum + i, read_num);
- }
-
- }
复制代码 |
|