新人求助,样例都没过不知道输出的什么鬼东西QAQ
查看原帖
新人求助,样例都没过不知道输出的什么鬼东西QAQ
172136
spencer楼主2023/7/9 21:46
#include<bits/stdc++.h>
using namespace std;
char op,s[100],l[100],a;
int n;
int getsize(int a){
	int cnt=0;
	if(a<0)a=-a;
	if(a==0)return 1;
	while(a>0){
		a/=10;
		cnt++;
	}
	return cnt;
}

int main(){
	cin>>n;
	while(n--){
		char l[100],s[100];
		scanf("%s",l);
		if(l[0]<'0'||l[0]>'9'){
			op=l[0];//if there is an operator
			for(int i=2;i<strlen(l);i++){
				s[i-2]=l[i];
			}
		}
		else {
			for(int i=0;i<strlen(l);i++){
				s[i]=l[i];
			}
		}
		int x,y,flag=0,len=strlen(s);
		for(int i=0;i<len;i++){
			if(s[i]!=' '&&flag==0)x=x*10+(s[i]-'0');
			if(s[i]!=' '&&flag==1)y=y*10+(s[i]-'0');
			if(s[i]==' ')flag=1;
		}
		cout<<x;
		int ans=0,k=2;
		if(op=='a')cout<<'+'<<y<<'='<<x+y<<'\n',ans=x+y;
		if(op=='b')cout<<'-'<<y<<'='<<x-y<<'\n',ans=x-y;
		if(op=='c')cout<<'*'<<y<<'='<<x*y<<'\n',ans=x*y;
		if(ans<0)k++;
		cout<<getsize(x)+getsize(y)+getsize(ans)+k<<'\n';
	
	}	
	return 0;
}
2023/7/9 21:46
加载中...