满意答案
KKYBB
2013.01.14
采纳率:40% 等级:2
已帮助:5218人
"#include"stdio.h"
void main()
{char a[100]={0};
int i,j,z,m=0,n=0,k=0,b[100]={0};
gets(a);
if(a[0]=='(')
{j=1;
b[0]=1;
for(;a[j]=='(';k++,j++) b[j]=1;
if(a[j]=='+'||a[j]=='-') goto next1;
z=1;
while(n!=m+k+1)
{if(a[j]=='(') m++;
if(a[j]==')')
{
n++;
if(n==m+z)
b[j]=1,z++;
}
j++;
}
}
i=0;
next1: for(;a[i];i++)
{
if(a[i]=='+'&&a[i+1]=='(')
{j=i+2;
b[i+1]=1;
for(k=0;a[j]=='(';k++,j++) b[j]=1;
if(a[j]=='+'||a[j]=='-') {i=j;for(;k+1>0;k--) b[j-k-1]=0;goto next1;}
m=0;n=0;
z=1;
while(n!=m+k+1)
{if(a[j]=='(') m++;
if(a[j]==')')
{
n++;
if(n==m+z)
b[j]=1,z++;
}
j++;
}
}
}
for(i=0;a[i];i++)
if(a[i]=='-'&&a[i+1]=='(')
{
for(k=0;a[i+2]=='(';i++,k++);
if(a[i+3]==')')
{for(j=1;j
{b[i+2-j]=1;b[i+2+j]=1;}
}
}
for(i=0;a[i];i++)
if(b[i]==0)
printf("%c",a[i]);
}
全自己编的哦,TC2.0里运行过,是对的,有啥不懂再问我。
改了,去掉了你说的漏洞,但a+(-b+c)的情形没写进去,其余问题目前还没发现。
又改了,去掉了a+(-b+c)的漏洞。"
02分享举报