为什么我写的程序明明调试成功了在onling judge提交的时候显示Wrong answer请大牛帮忙, 题目POJ3337

#include<iostream>#include<cstring>usingnamespacestd;intmain(){intloop;cin>>loop;whil... #include<iostream>
#include<cstring>
using namespace std;
int main(){
int loop;
cin>>loop;
while(loop--){
char s[100];
cin>>s;
cout<<"Expression: "<<s<<endl;
bool b[26];
memset(b,false,sizeof(b));
char c[26];
int t[26],l=strlen(s);
for(int i=0;i<26;i++)
{
c[i]='a'+i;
t[i]=i+1;
}
for(int i=0;i<l;i++)
{
if(s[i]>='a' && s[i]<='z')
{
b[s[i]-'a']=true;
if(s[i-2]=='+' && s[i-1]=='+')
{
++t[s[i]-'a'];
for(int j=i;j<l;j++)
{
s[j-2]=s[j];
l-=2;
}
}
else if(s[i-2]=='-' && s[i-1]=='-')
{
--t[s[i]-'a'];
for(int j=i;j<l;j++)
{
s[j-2]=s[j];
l-=2;
}
}
}
}
int sum=t[s[0]-'a'];
for(int i=1;i<l;i++)
if(s[i]>='a' && s[i]<='z')
{
if(s[i-1]=='-')
sum-=t[s[i]-'a'];
else
sum+=t[s[i]-'a'];
if(s[i+2]!='\0')
{
if(s[i+1]=='+' && s[i+2]=='+')
{
t[s[i]-'a']++;
for(int j=i+3;j<strlen(s);j++)
{
s[j-2]=s[j];
l-=2;
}
}
else if(s[i+1]=='-' && s[i+2]=='-')
{
t[s[i]-'a']--;
for(int j=i+3;j<strlen(s);j++)
{
s[j-2]=s[j];
l-=2;
}
}
}
else
break;
}
cout<<"value = "<<sum<<endl;
for(int i=0;i<26;i++)
if(b[i])
cout<<c[i]<<" = "<<t[i]<<endl;
}
return 0;
}

Sample Input
2
a+b
c+f--+--a
Sample Output
Expression: a+b
value = 3
a = 1
b = 2
Expression: c+f--+--a
value = 9
a = 0
c = 3
f = 5
展开
 我来答
huasheng229
2013-08-15 · 超过21用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:53.4万
展开全部
int sum=t[s[0]-'a'];
for(int i=1;i<l;i++)
if(s[i]>='a' && s[i]<='z')
{
我尝使把的代码看一遍,但你的语句写的太乱了,我还想问你想做什么样的操作,功能是什么,我上面代码中for语句,你没有写大括号,这个for的作用域是哪一部分?如果有疑问,可以加我15393971。也可以回复我
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式