使用数组的猫吃老鼠游戏

//本来是应该用连表写是很简单的函数,但是看到别人写的一个使用数组写的例子。
//
//个人觉得很烂,所以自己写了一个,虽然也可以吧,但是也觉得不爽!没有连表的好。
//
//但是还是记下来吧,也给入门者一个误导 哈哈哈 。。。。 汗。。。。

#include <stdio.h>
#define N 10
int serch(int start)
{
    int sun[N] = {0};
    int total = N;
    int count = 0;
    for(;total-- > 0;)
    {
        sun[total] = total+1;
        printf("%d ",sun[total]);
    }
    int ok = 0;
    printf("\n");
    int on = 0;
    for(int i = 0; i < N; i++)
    {
        for(int j = (on++ == 0 ? start:0); j < N; j++)
        {
            if(ok == 0)
            {
                ok++;
                sun[j] = 0;
            }
            if(sun[j] != 0)
            {
                if(count == 1)
                {
                    ok++;
                    if(ok == N )
                    {
                        for(i = 0;i < N ;i++ )
                            printf("%d ",sun[i]);
                        return j;
                    }
                    sun[j] = 0;
                    count--;
                }
                else
                    count++;
            }
        }
    }
 return 0;
}
int main()
{
    int start = 0;
 printf("请输入一个从0到%d的数:",N);
    scanf("%d",&start);
 if(start > N || start < 0)
  return 0;
    printf("\n最后一个是编号为:%d的。\n",serch(start)+1);
    return 1;
}
posted on 2004-10-28 17:22  flyingleaf  阅读(1625)  评论(0编辑  收藏  举报