马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<stdlib.h>
#define CardNumber 13
typedef struct node
{
int data;
struct node* next;
}sqlist, *linklist;
void main()
{
void Magician(linklist L);
linklist creat();
linklist rs;
/*int i;*/ //如果把这一句注释掉,换到下面两行
rs=creat();
Magician(rs);
int i; //换到这里,编译就就会报错,如图片所示,用的visual C++编译器,这是什么原因呢.
for(i=1;i<=CardNumber;i++)
{
printf("%d\n",rs->data);
rs=rs->next;
}
}
linklist creat()
{
linklist head=NULL;
linklist p;
linklist r;
int i;
for(i=1;i<=CardNumber;i++)
{
p=(linklist)malloc(sizeof(sqlist));
p->data=0;
if(head==NULL)
{
head=p;
}
else
{
r->next=p;
}
r=p;
}
r->next=head;
return head;
}
void Magician(linklist L)
{
linklist p;
int j;
int Countnumber = 2;
p=L;
L->data=1;
while(1)
{
for(j=1;j<=Countnumber;j++)
{
p=p->next;
if(p->data!=0)
{
j--;
}
}
if(p->data==0)
{
p->data=Countnumber;
Countnumber++;
if(Countnumber==14)
break;
}
}
}
|