#include<stdio.h>
#include<stdlib.h>
int main()
{
int *p,i,count,k,m,zero;
int n;
printf("Enter n m:");
scanf("%d %d",&n,&m);
if((p=(int *)calloc(n+1,sizeof(int)))==NULL){
printf("Error");
exit (1);
}
for(i=1;i<=n;i++)
p[i]=i;
for(i=1;i<n;i++){ //主循环n-1次
k=0; //记录下标
count=0; //记录是否数到第m个数
zero=0; //记录数组中置0的数
while(count<m){
if(p[k+1]!=0)
count++;
if(p[k+1]==0)
zero++;
k++;
if(k==n&&n-zero<m) //m遍循环count还没累加到m
k=0; //让它继续循环遍历
}
printf("%3d",p[k]); //找到就把它置0(淘汰掉)
p[k]=0;
}
free(p);
return 0;
}
C。习题八。三。4(报数)
最新推荐文章于 2021-12-26 17:19:02 发布