我的程序总是死循环 帮忙看一下!!谢谢!!
#include<stdlib.h>
#include<stdio.h>
typedef struct lnode{
int data;
struct lnode *next;
}lnode,*linklist;
void createlist(linklist *l,int n){
int i;
linklist p;
*l=(linklist)malloc(sizeof(struct lnode));
(*l)->next=NULL;
for(i=n;i>0;--i){
p=(linklist)malloc(sizeof(struct lnode));
p->data=i;
p->next=(*l)->next;
(*l)->next=p;} /*for*/
while(p->next) p=p->next;
p->next=*l;
} /*createlist*/
void listdelete(linklist *l,int i,int j){
int k=0,a;
linklist p=*l,q;
while(k<i-1)
{
p=p->next;
k++;
} /*while*/
k=0;
while((*l)->next!=*l)
{while(k<j-1)
{
p=p->next;
if(p->next==*l) p=p->next;
k++;
} /*while*/
q=p->next;
p->next=q->next;
a=q->data;
free(q);
printf("%d ",a);
k=0;}
} /*listdelete*/
main(){
int i,m,s,n;
linklist la,lb;
scanf("%d,%d,%d",&m,&s,&n);
createlist(&la,m);
listdelete(&lb,s,n);}