c++本地下载数据无误,洛谷0分蒟蒻求助
查看原帖
c++本地下载数据无误,洛谷0分蒟蒻求助
1212465
SilVeR__WolF楼主2024/2/23 20:39

代码有点长而且啰嗦,恳请各位大佬给点意见。

#include<bits/stdc++.h>
using namespace std;
#define equal equaltion
int n;
char p;
string equal;
int main(){
	scanf("%d\n",&n);
	for(int i=1;i<=n;i++)
	{
		getline(cin,equal);
		if(equal[0]>='a'&&equal[0]<='z')
		{
			p=equal[0];
			int sa=0,sb=0,j=0;
			while(equal[j+2]!=' ')
			{
				sa=sa*10+equal[j+2]-'0';
				j++;
			}
			int d=0;
			while(d+j+3<equal.size())
			{
				sb=sb*10+equal[d+j+3]-'0';
				d++;
			}
			int h=0,t;
			switch(equal[0])
			{
				case 'a':
					cout<<sa<<"+"<<sb<<"="<<sa+sb<<endl;
					t=sa+sb;
					while(t)
					{
						h++;
						t/=10;
					}
					cout<<d+j+h+2<<endl;
					break;
				case 'b':
					cout<<sa<<"-"<<sb<<"="<<sa-sb<<endl;
					t=sa-sb;
					while(t)
					{
						h++;
						t/=10;
					}
					if(sa-sb<0)
					    h++;
					cout<<d+j+h+2<<endl;
					break;
				case 'c':
					cout<<sa<<"*"<<sb<<"="<<sa*sb<<endl;
					t=sa*sb;
					while(t)
					{
						h++;
						t/=10;
					}
					cout<<d+j+h+2<<endl;
					break;
			}
		}
		else
		{
			int sa=0,sb=0,j=0;
			while(equal[j]!=' ')
			{
				sa=sa*10+equal[j]-'0';
				j++;
			}
			int d=0;
			while(d+j+1<equal.size())
			{
				sb=sb*10+equal[d+j+1]-'0';
				d++;
			}
			int h=0,t;
			switch(p)
			{
				case 'a':
					cout<<sa<<"+"<<sb<<"="<<sa+sb<<endl;
					t=sa+sb;
					while(t)
					{
						h++;
						t/=10;
					}
					cout<<d+j+h+2<<endl;
					break;
				case 'b':
					cout<<sa<<"-"<<sb<<"="<<sa-sb<<endl;
					t=sa-sb;
					while(t)
					{
						h++;
						t/=10;
					}
					if(sa-sb<0)
					    h++;
					cout<<d+j+h+2<<endl;
					break;
				case 'c':
					cout<<sa<<"*"<<sb<<"="<<sa*sb<<endl;
					t=sa*sb;
					while(t)
					{
						h++;
						t/=10;
					}
					cout<<d+j+h+2<<endl;
					break;
			}
		}
	}
	return 0;
}

球球了

2024/2/23 20:39
加载中...