P1957 口算练习题
  • 板块学术版
  • 楼主yszkddzyh
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/16 20:30
  • 上次更新2023/10/27 07:12:19
查看原帖
P1957 口算练习题
737158
yszkddzyh楼主2022/10/16 20:30
#include <bits/stdc++.h>
using namespace std;
struct ss
{
	int a,b,c;
	char op;
};
int qw(int x)
{
	int s=0;
	if(x<0)
	{
		x=-x;
		s++;
	}
	while(x>0)
	{
		x/=10;
		s++;
	}
	return s;
}
ss t[10005];
int l[10005];
int main()
{
	int n,a,b,p,x;
	char f,c;
	string s;
	cin>>n;
	getline(cin,s);
	for(int k=0;k<n;k++)
	{
		getline(cin,s);
		x=0;
		a=b=0;
		if(s[0]>='a'&&s[0]<='c')
		{
			x=1;
			c=s[0];
			f=c;
		}
		for(int i=s.size()-1,j=1;i>=0;i--,j*=10)
		{
			if(s[i]==' ')
			{
				p=i;
				break;
			}
			b+=(s[i]-'0')*j;
		}
		for(int i=p-1,j=1;i>=0;i--,j*=10)
		{
			if(s[i]==' ')
			{
				break;
			}
			a+=(s[i]-'0')*j;
		}
		if(f=='a')
		{
			if(x==1)
			{
				t[k].a=a;
				t[k].op='+';
				t[k].b=b;
				t[k].c=a+b;
				l[k]=s.size()-1+qw(a+b);
			}
			else
			{
				t[k].a=a;
				t[k].op='+';
				t[k].b=b;
				t[k].c=a+b;
				l[k]=s.size()+1+qw(a+b);
			}
		}
		if(f=='b')
		{
			if(x==1)
			{
				t[k].a=a;
				t[k].op='-';
				t[k].b=b;
				t[k].c=a-b;
				l[k]=s.size()-1+qw(a-b);
			}
			else
			{
				t[k].a=a;
				t[k].op='-';
				t[k].b=b;
				t[k].c=a-b;
				l[k]=s.size()+1+qw(a-b);
			}
		}
		if(f=='c')
		{
			if(x==1)
			{
				t[k].a=a;
				t[k].op='*';
				t[k].b=b;
				t[k].c=a*b;
				l[k]=s.size()-1+qw(a*b);
			}
			else
			{
				t[k].a=a;
				t[k].op='*';
				t[k].b=b;
				t[k].c=a*b;
				l[k]=s.size()+1+qw(a*b);
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		cout<<t[i].a<<t[i].op<<t[i].b<<'='<<t[i].c<<endl<<l[i]<<endl;;
	}
	return 0;
}

麻烦dalao们看一下哪里错了,本蒟蒻在此栓Q。

2022/10/16 20:30
加载中...