本机运行没有问题,但是全是WA,求指教。
#include <iostream>
#include <sstream>
#include <stdlib.h>
#include <cstdio>
#include <string>
#include <string.h>
#include <vector>
using namespace std;
int main()
{
int i,j,n1,n2,l1,l2,ans;
char mode;
vector <string> m;
vector <string>::iterator p;
char a[100],c;
string s,t,temp;
stringstream ss,aa;
string ::size_type pos1,pos2;
cin>>i;
getchar();
while(i--)
{
s=" ";
while(true)
{
c=getchar();
if(c=='\n')
break;
s+=c;
}
pos2=s.rfind(" ")+1;//第二个数字的起始位置
l2=s.size()-pos1;
pos1=s.rfind(" ",pos2-2)+1;//第一个数字的起始位置
l1=pos2-pos1-1;
ss<<s.substr(pos2,l2);
temp=s.substr(pos1,s.size()-pos1);
ss>>n2;
ss.clear();
ss<<s.substr(pos1,l1);
ss>>n1;
ss.clear();
switch(s[1])
{
case 'a':mode='+';break;
case 'b':mode='-';ans=n1-n2;break;
case 'c':mode='*';ans=n1*n2;break;
}
switch(mode)
{
case '+':ans=n1+n2;break;
case '-':ans=n1-n2;break;
case '*':ans=n1*n2;break;
}
aa<<ans;
aa>>t;
temp+="=";
temp+=t;
aa.clear();
ss<<n1<<mode<<n2<<"="<<ans;
ss>>temp;
ss.clear();
m.push_back(temp);
}
for(p=m.begin();p!=m.end();++p)
{
cout<<*p<<endl;
cout<<(*p).size();
if(p!=m.end()-1)
cout<<endl;
}
return 0;
}