@[bj12z_wangziqian](/user/757092)
```cpp
#include <iostream>
#include <string>
using namespace std;
int stoi(string l)
{
int p = 0;
for (int i = 0; i < l.length(); i++)
{
p = p * 10 + l[i] - '0';
}
return p;
}
int lenjs(int a, char b, int c, int d)
{
int cnt;
int t1 = a;
int t2 = c;
int t3 = d;
if (t3 < 0)
{
cnt = 3;
}
if (t3 >= 0)
{
cnt = 2;
}
if (t1 == 0)
{
cnt++;
}
if (t2 == 0)
{
cnt++;
}
if (t3 == 0)
{
cnt++;
}
while (t1 != 0)
{
cnt++;
t1 /= 10;
}
while (t2 != 0)
{
cnt++;
t2 /= 10;
}
while (t3 != 0)
{
cnt++;
t3 /= 10;
}
return cnt;
}
int x[1005];
char op[1005];
int y[1005];
int res[1005];
int len[1005];
//计算有x,op,y,分别代表第一个数、运算符号、第二个数。从cin输入得到。
//输入
/*用cin:
如果第一个字符串t的第一位是数字(既是代表第一个是数,是加法).
因此就要将该字符串存成变量x,并且op='+',再输入y。
如果第一个字符串是a||b||c,就op赋值,再输入x、y。
*/
int main()
{
int n;
cin >> n;
string t;
for (int i = 1; i <= n; i++)
{
cin >> t;
if ('a' <= t[0] && t[0] <= 'c')
{
if (t[0] == 'a')
{
op[i] = '+';
}
if (t[0] == 'b')
{
op[i] = '-';
}
if (t[0] == 'c')
{
op[i] = '*';
}
cin >> x[i] >> y[i];
}
if ('0' <= t[0] && t[0] <= '9')
{
x[i] = stoi(t);
cin >> y[i];
op[i] = op[i - 1];
}
}
for (int i = 1; i <= n; i++)
{
if (op[i] == '+')
{
res[i] = x[i] + y[i];
}
if (op[i] == '-')
{
res[i] = x[i] - y[i];
}
if (op[i] == '*')
{
res[i] = x[i] * y[i];
}
len[i] = lenjs(x[i], op[i], y[i], res[i]);
}
for (int i = 1; i <= n; i++)
{
cout << x[i] << op[i] << y[i] << "=" << res[i] << endl;
cout << len[i] << endl;
}
return 0;
}
```
by JustinXiaoJunyang @ 2022-11-12 16:26:03
@[JustinXiaoJunyang](/user/397137)
感谢大佬
好人一生平安!
by bj12z_wangziqian @ 2022-11-12 16:52:26
@[bj12z_wangziqian](/user/757092) 谢谢
by JustinXiaoJunyang @ 2022-11-12 16:56:26