第一种方法:
#include
#define M 10
#define N 3
void main(void)
{ int a[M], b[M];/*数组a存放圈中人的编号,数组b存放出圈人的编号*/
int i, j, k; for(i = 0; i < M; i++)/*对圈中人按顺序编号1-M*/ a = i + 1; for(i = M, j = 0; i > 1; i--) {
/*i表示圈中人个数,初始为M个,剩1个人时结束循环;j表示当前报数人的位置*/ for(k = 1; k <= N; k++) /*1至N报数*/ if(++j > i - 1) j = 0;/*最后一个人报数后第一个人接着报,形成一个圈*/