实际为创建相应链表之后对其中一个元素进行删除,或者提出来存储输出
但也可以不用链表。
代码分享如下:
#include<stdio.h>
int main()
{
int n,m,last,out[1000],num[1000];
int k,cnt,i;
printf("请输入一共的人数:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
num[i]=i+1;
}
i = 0;
cnt = 0;
k = 0;
printf("请输入你要让退出的号数(0或大于人数个数为结束标志)\n");
scanf("%d",&m);
for(i=0;i<n;i++)
{
if(num[i]!=0)
{
k++;
}
if(k==m)//k等于m时的操作
{
out[cnt]=num[i];
k=0;
cnt++;
scanf("%d",&m);
i=0;//终结本次循环进去下一次故清零
continue;
}
if(m==0||m>n)//做条件中断循环
{
break;
}
}
printf("按照出现顺序输出号数:\n");
for(i=0;i<cnt;i++)
{
if(i==0)
printf("%d ",out[i]);
else
printf("%d ",out[i]-1);
}
printf("\n");
return 0;
}