第一章---线性表

题目:

这是一个约瑟夫环问题,用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");
}

猜你喜欢

转载自blog.csdn.net/qq_16829085/article/details/82945536