求解,C++运行时 显示停止工作

#include
#include
using namespace std;
void str_(char strs[100],int i);
int main()
{
int i;
char str[100];
cout<<"请输入一串字符"< cin>>str;
while(str[i]!='\0')
{
i++;
}
str_(str,i);
return 0;
}

int judge(char string[100])
{
int len;
int i=0;
int a,b;
int m,n;
while(string[i]!='\0')
{
i++;
}
if(i%2==0)
{
a=i/2-1;
b=(i/2);
}
else
{
a=(i/2)-1;
b=(i/2)+1;
}
for(m=a,n=b;m>=0,n {
if(string[m]==string[n])
{
continue;
}
else
{
len=n-m-1;
break;
}
}
if(n==i)
{
return n;
}
else
return len;
}
void str_(char strs[100],int i)
{
char ss[100];
int p,q;
int num,count;
if(i%2==0)
{
num=0;
}
else
{
num=1;
}
while(i>=0)
{
for(p=0;p {
for(q=1;q {
strncpy(ss,strs+p,q);
ss[p+q]='\0';
count=judge(ss);
if(count>num)
{
num=count;
i--;
continue;
}
else
{
i--;
continue;
}

        }
    }
}
cout<<"得到的最大回文数是:"<<num<<endl;

}