continue_waste @ 2020-10-10 16:06:01
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctype.h>
#include<iostream>
#include<algorithm>
#include<math.h>
char a[1000];//存放字符信息
int b[5]; //存放数字信息
int l(int x) { //可用来计算长度
int length=0;
if(x<0)
length+=1;
while(x) {
x/=10;
length++;
}
return length;
}
//用一个函数把数字部分输入数字数组
//有运算符号时
void c1(char a[]) {
int sum=0;
int cnt=0;
int length=strlen(a);
for(int i=0; i<length; i++) {
if(a[i]==' ') {
int t=i+1;
while(a[t]!=' '&&t!=length) {
sum=sum*10+a[t]-'0';
t++; //得到了第一个空格后的第一个数
}
if(sum!=0) {
b[cnt]=sum;
cnt++;
sum=0;
}
}
}
}
//无运算符时
void c2(char a[]) {
int length=strlen(a);
int cnt=0;
int sum=0;
for(int i=0; i<=length; i++) {
if(a[i]!=' '&&i!=length) {
sum=sum*10+a[i]-'0';
}
if(a[i]==' '||i==length) {
b[cnt]=sum;
cnt++;
sum=0;
}
}
}
using namespace std;
int main() {
int i;
scanf("%d",&i);
getchar();
int flag=0;
for(int j=0; j<i; j++) {
gets(a);
if(a[0]>='a'&&a[0]<='c') { //有运算符
c1(a);
if(a[0]=='a') {
printf("%d+%d=%d\n",b[0],b[1],b[0]+b[1]);
if(j==i-1)
printf("%d",l(b[0])+l(b[1])+l(b[0]+b[1])+2);
else
printf("%d\n",l(b[0])+l(b[1])+l(b[0]+b[1])+2);
flag=1;
}
if(a[0]=='b') {
printf("%d-%d=%d\n",b[0],b[1],b[0]-b[1]);
if(j==i-1)
printf("%d",l(b[0])+l(b[1])+l(b[0]-b[1])+2);
else
printf("%d\n",l(b[0])+l(b[1])+l(b[0]-b[1])+2);
flag=2;
}
if(a[0]=='c') {
printf("%d*%d=%d\n",b[0],b[1],b[0]*b[1]);
if(j==i-1)
printf("%d",l(b[0])+l(b[1])+l(b[0]*b[1])+2);
else
printf("%d\n",l(b[0])+l(b[1])+l(b[0]*b[1])+2);
flag=3;
}
} else {
c2(a);
if(flag==1) {
printf("%d+%d=%d\n",b[0],b[1],b[0]+b[1]);
if(j==i-1)
printf("%d",l(b[0])+l(b[1])+l(b[0]+b[1])+2);
else
printf("%d\n",l(b[0])+l(b[1])+l(b[0]+b[1])+2);
}
if(flag==2) {
printf("%d-%d=%d\n",b[0],b[1],b[0]-b[1]);
if(j==i-1)
printf("%d",l(b[0])+l(b[1])+l(b[0]-b[1])+2);
else
printf("%d\n",l(b[0])+l(b[1])+l(b[0]-b[1])+2);
}
if(flag==3) {
printf("%d*%d=%d\n",b[0],b[1],b[0]*b[1]);
if(j==i-1)
printf("%d",l(b[0])+l(b[1])+l(b[0]*b[1])+2);
else
printf("%d\n",l(b[0])+l(b[1])+l(b[0]*b[1])+2);
}
}
}
return 0;
}