#include <stdio.h>
#include <stdlib.h>
#define LEN sizeof(struct magic)
typedef struct magic{ //结构体,包含一个整形和一个指针;
int no;
struct magic *next;
}PAI;
int a[14]={0}; //包含14个元素的数组,用来存放每次翻开的卡牌
PAI *creat(){ //创建循环链表 包含13个结构体,整型赋值 1-13 并按顺序链接;返回表尾指针。
PAI *head,*p1,*p2;
int i;
head=p1=p2=(PAI *)malloc(LEN);
for(i=1;i<13;i++){
p1->no=i;
p2=p1;
p1=(PAI *)malloc(LEN);
p2->next=p1;
}
p1->no=13;
p1->next=head;
return p1;
}
void fuzhi(PAI *p){ // 从表尾开始数,(1-13);每删除(翻开)一个元素,获取他的位置 然后在数组对应的位置赋值该翻开卡牌的数值。
int i,j;
PAI *p1=p;
for(i=1;i<=13;i++){
for(j=1;j<i;j++){
p1=p;
p=p1->next;
}
if(i==1) { a[p1->next->no]=j;
p=p->next->next;
p1->next=p;
}
魔术师发牌问题 C语言
最新推荐文章于 2021-05-23 08:14:17 发布