Vegiak @ 2020-08-16 07:50:22
乱七八糟的代码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,m;
int main()
{
cin>>n;
cin.get();
for(int i=1;i<=n;i++)
{
string s;
int k=1,dig[3]={0,0,0},ans,res,fu=0;
getline(cin,s);
ans=s.length();
for(int j=0;j<s.length();j++)
{
if(s[j]>='a'&&s[j]<='c')
{
m=s[j]=s[j]-'a'+1;
ans-=2;
j++;
continue;
}
if(s[j]==' ')
{
k=2;
continue;
}
if(s[j]=='-')
{
fu=1;
continue;
}
dig[k]*=10;
dig[k]+=s[j]-'0';
if(fu==1)
{
fu=0;
dig[k]+=-1;
}
}
cout<<dig[1];
if(m==1)
{
res=dig[1]+dig[2];
cout<<"+"<<dig[2]<<"="<<res<<endl;
}
if(m==2)
{
res=dig[1]-dig[2];
cout<<"-"<<dig[2]<<"="<<res<<endl;
}
if(m==3)
{
res=dig[1]*dig[2];
cout<<"*"<<dig[2]<<"="<<res<<endl;
}
if(res<0)ans++;
while(res)
{
res/=10;
ans++;
}
ans++;
if(dig[1]<0)ans++;
if(dig[2]<0)ans++;
cout<<ans<<endl;
}
return 0;
}
by sync_with_stdio @ 2020-08-16 11:01:55
不要用getline,用cin,读入一个字母,两个字符串,如果字母>='0' && <='9',就把它加到第一个字符串里
即:
cin>>qaz>>a1>>a2;
if(qaz=='a')
type=1;
if(qaz=='b')
type=2;
if(qaz=='c')
type=3;
if(qaz>='0' && qaz<='9')
a1=qaz+a1;
然后就按type对应的种类输出就行。
@Vegiak
by sync_with_stdio @ 2020-08-16 11:03:26
我也是刚A的·
by Vegiak @ 2020-08-16 12:56:26
感谢,学到了((