#include <stdlib.h>
#include <stdio.h>
#define CardNumber 13
typedef struct Node{
int data;
struct Node *next; // 这里少了分号;
} sqlList,*LinkList;
LinkList CreateList(){
int i;
LinkList head=NULL;
LinkList p,q;
p=head;
for(i=1;i<=CardNumber;i++)
{
q=(LinkList)malloc(sizeof(sqlList));
q->data=0;
/*
head=q;
p->next=q;
这是要头插还是尾插?前一步头结点指向新结点,又让尾结点指向新结点
*/
if ( !head ) // 头结点空就放头结点后面
head = q;
else // 不空就放尾结点后面
p->next = q;
p=q;
}
p->next=head;
return head;
}
void Mangic(LinkList *head)
{
int Number=2;
int i;
LinkList p;
p= *head; // head是二次指针,p是一次,解引用后再赋值
p->data=1;
while(1)
{
for(i=0;i<Number;i++)
{
p=p->next;
if(p->data!=0)
{
//p->next;
i--;
}
}
if(p->data==0)
{
p->data=Number;
Number++;
if(Number==14)
{
break;
}
}
}
}
int main(){
int i;
LinkList l;
l=CreateList();
Mangic(&l);
for(i=0;i<CardNumber;i++)
{
printf("%d ", l->data);
l=l->next;
}
return 0;
}
有问题点“回复”,没问题麻烦点一下“最佳答案” |