问题遇到的现象和发生背景
为什么最后我输出不了a[i]?sup + 1是可以正常输出的。
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
int main(){
int n,k;
scanf("%d %d",&n,&k);
int arr[100] = {0};
int num = 0; //记录1~k
int sup = 0;//记录下标
int survive = n;//记录存活的人数
int a[100] = {0};
int i = 1;
while (survive >= k){
if (arr[sup] == 0){
num++;
if (num % k == 0){
survive--;
arr[sup] = 1;
printf("%d ",sup + 1);
num = 0;
}
}
sup = (sup + 1) % n;//1~n的下标
}
if (arr[sup] == 0){
a[i] = sup + 1;
i++;
printf("%d ",a[i]);
}
// while (survive < k){
//
// }
return 0;
}
运行结果及报错内容
D:\clioncode_1\cmake-build-debug\homework3\josephus.exe
41 3
3 6 9 12 15 18 21 24 27 30 33 36 39 1 5 10 14 19 23 28 32 37 41 7 13 20 26 34 40 8 17 29 38 11 25 2 22 4 35
Process finished with exit code 0