为什么我写的程序明明调试成功了在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 展开
#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 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询