俺的程序
#include
#include
#define MAXNUM 1000
typedef struct _tagPIG{
int num;
struct PIG *next;
} PIG, *pPIG;
int main(int argc, char *argv[])
{
pPIG pHead,pTmp,pPre,pNex;
int i;
for (i =0;i {
pTmp = (pPIG)malloc(sizeof(PIG));
pTmp->num = i+1;
if(i == 0 )
{
pHead = pTmp;
pTmp->next = pHead;
}
else
{
if(i == MAXNUM-1)
{
pTmp->next = pHead;
pPre->next = pTmp;
}
else
pPre->next = pTmp;
}
pPre = pTmp;
}
// pTmp = pHead; //加上这句就是从第二个开始砍了.
while (1)
{
pNex = pTmp->next;
pTmp->next = pNex->next;
pTmp = pTmp->next;
if(pTmp->next == pTmp)
break;
free(pNex);
}
printf("nummber is %d!\n",pTmp->num);
free(pTmp);
system("PAUSE");
return 0;
}