please give me special test case to find error for following program
void rpn(char*);
void swap(char*p)
{ int j;
char temp;
if(*(p+1)!='(')
{ if(*(p+1)!=')'&&*(p-1)!='(')
{if(*(p-2)=='(')
{ *(p-2)=*(p-1);
*(p-1)=*(p+1);
for(j=1;*(p+j)!='\0';j++)
*(p+j)=*(p+j+2);
}
else if(*(p+2)==')'&&*(p+1)!='*'&&*(p+1)!='/'&&*(p+1)!='^'&&*(p+1)!='+'&&*(p+1)!='-')
{
temp=*p;
*p=*(p+1);
*(p+1)=temp;
for(j=2;*(p+j)!='\0';j++)
*(p+j)=*(p+j+1);
}
}
}
else if(*(p+1)=='(')
{ rpn(p+1);
temp=*p;
if(*(p+1)=='('){
for(j=1;*(p+j)!='\0';j++)
*(p+j)=*(p+j+1);
}
for(j=0;*(p+j+1)!=')'&&*(p+j)!='\0';j++)
*(p+j)=*(p+j+1);
*(p+j)=temp;
for(j++;*(p+j)!='\0';j++)
*(p+j)=*(p+j+1);
}
}
void rpn(char*p)
{
int i;
for(i=0;*(p+i)!='\0';i++)
{
if(*(p+i)=='^')
swap(p+i);
else if(*(p+i)=='*')
swap(p+i);
else if(*(p+i)=='/')
swap(p+i);
else if(*(p+i)=='+')
swap(p+i);
else if(*(p+i)=='-')
swap(p+i);
}
}
void rm(char*p)
{
int i,j;
for(i=0;*(p+i)!='\0';i++)
if(*(p+i)=='('||*(p+i)==')')
{for(j=i;*(p+j)!='\0';j++)
*(p+j)=*(p+j+1);
i--;}
}
int main()
{
char a[100][401];
int i,j,t;
scanf("%d",&t);
if(t<=100)
{
for(i=0;i<t;i++)
scanf("%s",a[i]);
for(i=0;i<t;i++)
{rpn(a[i]);
rm(a[i]);
printf("\n%s",a[i]);
}
}
return 0;
}