C语言约瑟夫环问题,不用指针,不用链表

2024-12-02 19:26:47
推荐回答(1个)
回答1:

//用数组实现约瑟夫环
#include
#define maxN 100
int main(){
int Joself_k(int,int,int);
int n,k,m;
printf("输入总人数n,开始报数号k,出列号码m:\n");
scanf("%d%d%d",&n,&k,&m);
Joself_k(n,k,m);
return 0;
}
int Joself_k(int n,int k,int m){
//从编号k(k<=n)开始报数,报数到m的出列
int i,j,count=1,a[maxN];
for(i=0;i i=k-1;//从编号k(对应下标i)开始报数
printf("出列序列:\n");
while(n>=1){
count++;//报数
i=(i+1)%n;//循环时使得i值小于n
if(count==m){
printf("%d\t",a[i]);
for(j=i;j a[j]=a[j+1];
n--;
count=1;
}
}
printf("\n");
return(a[0]);
}