约瑟夫环(Joseph)编程内容
#include <stdio.h>
void main()
{
int arr[100];
int i=0,interval=0,qty=0,count=0,count1=0; //count数未出局的,count1数出局的
printf("请输入人数和间隔(+1): "); //间隔1,interval=2,间隔2,interval=3,依次类推。
scanf("%d%d",&qty,&interval);
for(i=0;i<qty;i++){ //给数组赋相同值或不同值,但不赋值为-1。 arr[i]=1000; printf("arr[%d]=%d ",i,arr[i]);}printf("\n");arr[0]=-1; //不论数组值相同或不同,圆环的任意起点可设置为索引是0,-1表示已出局。count1++; //count1计算出局数。printf("第 %d 个出局的是索引为 %d 的。\n",count1,0); while(count1!=qty){ for(i=0;i<qty;i++) { if(arr[i]==-1) { continue; }else{ count++; } if(count%(interval)==0) { arr[i]=-1; count1++; printf("第 %d 个出局的是索引为 %d 的。\n",count1,i); } } }printf("\n");
}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。