#include <stdio.h>
#include <stdlib.h>
#define n 10
void display(int *a,int k){
for(int i=0;i<k;i++){
printf("%d ",*(a+i));
}
printf("\n");
}
int menu(){
int a[n];
int i;
for(i=0;i<n;i++){
a[i]=i+1;
}
display(a,n);
printf("请输入m值:");
int m;
scanf("%d",&m);
int num=n;
i=0;
int count=0;
printf("依次被淘汰的学生为:");
while(num>1){
if(a[i]!=0){
count++;
}
if(count==m){
printf("%d ",a[i]);
a[i]=0;
count=0;
num--;
}
i++;
if(i==n){
i=0;
}
}
printf("\n");
for(i=0;i<n;i++){
if(a[i]!=0){
printf("获胜者:%d ",*(a+i));
}
}
printf("\n");
return 0;
}
int main(){
menu();
return 0;
}
约瑟夫问题(数组)
最新推荐文章于 2022-01-02 18:22:57 发布