猫吃老鼠的问题
老师留作业:一只猫捉了N只老鼠,把它们摆成一圈,编上序号,第一次吃偶数序号的(2,4,6^^^^^),输出这些序号;第二次吃当前偶数序列的(3,7^^^^),输出这些序号;第三次^^^^^依次进行下去
要求用顺序线性表的方法(明天中午之前要)谁能帮个忙啊?
急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急
[解决办法]
链表模拟即可。
可以参考约瑟夫环的写法。
http://www.cnblogs.com/shiyangxt/archive/2008/09/17/1292723.html
[解决办法]
#define N 10#define ODD 0#define EVEN 1#define EATED 0void main(void){ int mouse[N]; int mouse_left = N; int flag = ODD; int i; for( i = 0; i < N; i++ ) mouse[i] = i+1; for( i = 0; mouse_left != 1; i++ ){ if( i == N ){ i = 0; flag = ODD; } if( mouse[i] != EATED ){ if( flag == EVEN ){ printf("%d\t",mouse[i]); mouse[i] = EATED; mouse_left--; flag = ODD; } else flag = EVEN; } }}