第一章---线性表
题目:
这是一个约瑟夫环问题,用C语言数组解决如下
#define MAXN 100
void printring(int a[],int n,int i,int k){
int b[MAXN],j,s;
for(j=0;j<n;j++){
b[j]=0;
printf("b[%d]=%d\n",j,b[j]);
}
printf("------\n");
i--; //转换为数组下标
s=0;
j=n;
while(j>0){
if(b[i]!=-1){
s++;
if(s==k){
s=0;
j--;
printf("a[%d]=%d \n",i,a[i]); //打印该数
b[i]=-1;
}
}
i=(i+1)%n; //下标移动
}
}
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
printring(a,10,5,12);
printf("-----\n");
}