我想要实现出圈游戏的代码,代码如下:
#include
#include
const int max=100;
int a[max],m[max],p[max];
int N(int n)//用于计算n
{
int s[n],r[n],p=0,max=1,i=0,j=0;
for(j=0;j1;
for(i=0;iif(j!=i) s[j]=s[j]*m[i];
}
}
for(i=0;ifor(i=0;iprintf("%d ",a[i]*s[i]*r[i]);
}
p=p%max;
return p;
}
typedef struct node{
int data;
struct node* next;
int index;
}node;
node*head;
void generate(int n)//循环列表
{
node *p;node *q;node *head;
head =(node*)malloc(sizeof(node));
head->data=1;head->next=NULL;head->index =1;
q=head;
for(int i=2;i<=n;i++)
{
node*p=(node*)malloc(sizeof(node));
p->data=i;p->index=i;
printf("%d ",p->index );
q->next=p;p->next=NULL;
}
p->next=head;
}//
void get_a(int n)
{
node *h;node *q;
q=head;
int i=0,count=1;
printf("%d ",n);
while(q->next !=q)
{
count=1;
while(q->data !=p[i])
{ h=q;q=q->next ;count++;}
a[i]=count ;
printf("%d ",count);
h->next =q->next ;q=h->next ;
i+=1;
if(i==3) break;
}
}
int main()
{
int n,i,k;//最开始的人数
scanf("%d",&n);
for(i=n;i>1;i--) m[i]=n;//得到了m数组,现在需要找到a数组,输入p数组
for(i=0;iscanf("%d",&p[i]);//
generate(n);//
printf("%d ",n)//不运行了
get_a(n);//得到a[]数组
k=N(n-1);
printf("%d",k);
}
代码运行到generate(n)之后,后面的代码就不运行了
我想知道除了什么问题,为什么会不运行了?