社区讨论

RE求助

P1957口算练习题参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@lo7mom76
此快照首次捕获于
2023/10/27 04:19
2 年前
此快照最后确认于
2023/10/27 04:19
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
int n,dq=1;
char x[10010];
void work()
{
	int num1=0,num2=0;
	cin.getline(x,9999);
	if(x[0]>'9'||x[0]<'0')
	{
		int j=2;
		while(x[j]>'9'||x[j]<'0')
		j++;
		while(x[j]>='0'&&x[j]<='9')
		{
			num1=num1*10+(x[j]-'0');
			j++;
		}
		while(x[j]>'9'||x[j]<'0')
		j++;
		while(x[j]>='0'&&x[j]<='9'&&j<strlen(x))
		{
			num2=num2*10+(x[j]-'0');
			j++;
		}
		if(x[0]=='a')
			dq=1;//+
		if(x[0]=='b')
			dq=2;//-
		if(x[0]=='c')
			dq=3;//*
	}
	else
	{
		int j=0;
		while(x[j]>='0'&&x[j]<='9')
		{
			num1=num1*10+(x[j]-'0');
			j++;
		}
		j++;
		while(x[j]>'9'||x[j]<'0')
			j++;
		while(x[j]>='0'&&x[j]<='9'&&j<strlen(x))
		{
			num2=num2*10+(x[j]-'0');
			j++;
		}
		if(x[0]=='a')
			dq=1;//+
		if(x[0]=='b')
			dq=2;//-
		if(x[0]=='c')
			dq=3;//*
	}
	char k;
	int ans;
	if(dq==1)
	{
		k='+';
		ans=num1+num2;
	}
	if(dq==2)
	{
		k='-';
		ans=num1-num2;
	}
	if(dq==3)
	{
		k='*';
		ans=num1*num2;
	}
	printf("%d%c%d=%d\n",num1,k,num2,ans);
	int ans2=0;
	while(num1>0)
	{
		num1/=10;
		ans2++;
	}
	while(num2>0)
	{
		num2/=10;
		ans2++;
	}
	if(ans<0)
	{
		ans=-ans;
		ans2++;
	}
	while(ans>0)
	{
		ans/=10;
		ans2++;
	}
	printf("%d\n",ans2+2);
}
int main()
{
	scanf("%d",&n);
	getchar();
	while(n--)
		work();
}
本地没问题但是交了RE这是为什么

回复

6 条回复,欢迎继续交流。

正在加载回复...