but i receive a letter:
[451] Runtime Error: 101
Dear wonda:
Your program has died with signal 11 (SIGSEGV). Meaning:
Invalid memory reference
Before crash, it ran during 0.002 seconds.
--
here is my code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int k,a[27][27],b[27];
int moon(int,int);
int moov(int,int);
int pion(int,int);
int piov(int,int);
main()
{ int i,j,x,y;
char d[5]={" "},h[5]={" "},q[]={"quit"},m[]={"move"},p[]={"pile"},n[]={"onto"},v[]={"over"};
while(1)
{ scanf("%d",&k);
for(i=0;i<k;i++)
{ a[0]=i;
b=i;
for(j=1;j<=k;j++)
a[j]=-1;
}
scanf("%s",d);
while(1)
{ if(strcmp(d,q)==0)
break;
scanf("%d %s %d",&x,h,&y);
if(x!=y && b[x]!=b[y])
{ if(strcmp(d,m)==0 && strcmp(h,n)==0)
moon(x,y);
if(strcmp(d,m)==0 && strcmp(h,v)==0)
moov(x,y);
if(strcmp(d,p)==0 && strcmp(h,n)==0)
pion(x,y);
if(strcmp(d,p)==0 && strcmp(h,v)==0)
piov(x,y);
}
scanf("%s",&d);
}
for(i=0;i<k;i++)
{ j=0;
printf("%d:",i);
while(a[j]!=-1)
{ if(a[j]!=-1)
printf(" %d",a[j]);
else
break;
j++;
}
printf("\n");
}
}
}
int moon(int x,int y)
{ int i=0,j;
while(a[b[x]]!=x)
i++;
a[b[x]]=-1;
i++;
while(a[b[x]]!=-1)
{ b[a[b[x]]]=a[b[x]][i];
a[ a[b[x]][i] ][0]=a[b[x]][i];
a[b[x]][i]=-1;
i++;
}
i=0;
while(a[b[y]][i]!=y)
i++;
j=i;
i++;
while(a[b[y]][i]!=-1)
{ b[a[b[y]][i]]=a[b[y]][i];
a[a[b[y]][i]][0]=a[b[y]][i];
a[b[y]][i]=-1;
i++;
}
a[b[y]][j+1]=x;
b[x]=b[y];
return 1;
}
int moov(int x,int y)
{ int i=0;
while(a[b[x]][i]!=x)
i++;
a[b[x]][i]=-1;
i++;
while(a[b[x]][i]!=-1)
{ b[a[b[x]][i]]=a[b[x]][i];
a[a[b[x]][i]][0]=a[b[x]][i];
a[b[x]][i]=-1;
i++;
}
i=0;
while(a[b[y]][i]!=-1)
i++;
a[b[y]][i]=x;
b[x]=b[y];
return 1;
}
int pion(int x,int y)
{ int i=0,j,t,xx;
xx=b[x];
while(a[b[y]][i]!=y)
i++;
i++;
j=i;
while(a[b[y]][i]!=-1)
{ b[a[b[y]][i]]=a[b[y]][i];
a[a[b[y]][i]][0]=a[b[y]][i];
a[b[y]][i]=-1;
i++;
}
i=0;
while(a[b[x]][i]!=x)
i++;
while(a[xx][i]!=-1)
{ a[b[y]][j]=a[xx][i];
t=a[xx][i];
a[xx][i]=-1;
b[t]=b[y];
i++; j++;
}
return 1;
}
int piov(int x,int y)
{ int i=0,j=0,xx,yy;
xx=b[x];
yy=b[y];
while(a[b[x]][i]!=x)
i++;
while(a[b[y]][j]!=y)
j++;
j++;
while(a[xx][i]!=-1)
{ a[yy][j]=a[xx][i];
b[a[xx][i]]=yy;
a[xx][i]=-1;
i++;
j++;
}
return 1;
}
please help me.
thanks you very much.
