为什么过不了啊 自测都是对滴
查看原帖
为什么过不了啊 自测都是对滴
883083
WenxinHu楼主2023/3/5 13:08
#include<iostream>
#include<string>
using namespace std;
int number(int n)//求数字有几位数
{
	int count = 0;
	while (n / 10 != 0)
	{
		count++;
		n /= 10;
	}
	return count+1;
}
int main()
{
	int i = 0;
	cin >> i;
	//getline(cin, i);
	string arr[50];
	cin.ignore();
	char sig='a';
	for (int m = 1; m <= i; m++)
	{
		getline(cin, arr[m]);
	}
	for (int m = 1; m <= i; m++)
	{
		if (arr[m][0] == 'a')//+
		{
			int a = 0, b = 0;
			char sig = arr[m][0];
			for (int j = 0; j < arr[m].length(); j++)
			{
				if (arr[m][j] <= '9' && arr[m][j] >= '0')
				{
					a += arr[m][j] - '0';
					while (arr[m][j + 1] != ' ' && (j + 1) != arr[m].length())
					{
						a *= 10;
						break;
					}
				}
				else if (arr[m][j] == ' ')
				{
					b = a;
					a = 0;
					continue;
				}
			}
			cout << b << '+' << a << '=' << b + a << endl;
			cout << number(a) + number(b) + number(a + b) + 2<<endl;
		}
		else if (arr[m][0] == 'b')//-
		{
			char sig = arr[m][0];
			int a = 0, b = 0;
			for (int j = 0; j < arr[m].length(); j++)
			{
				if (arr[m][j] <= '9' && arr[m][j] >= '0')
				{
					a += arr[m][j] - '0';
					while (arr[m][j + 1] != ' ' && (j + 1) != arr[m].length())
					{
						a *= 10;
						break;
					}
				}
				else if (arr[m][j] == ' ')
				{
					b = a;
					a = 0;
					continue;
				}
			}
			cout << b << '-' << a << '=' << b - a << endl;
			cout << number(a) + number(b) + number(a + b) + 2<<endl;

		}
		else if (arr[m][0] == 'c')//*
		{
			int a = 0, b = 0;
			char sig = arr[m][0];

			for (int j = 0; j < arr[m].length(); j++)
			{
				if (arr[m][j] <= '9' && arr[m][j] >= '0')
				{
					a += arr[m][j] - '0';
					while (arr[m][j + 1] != ' ' && (j + 1) != arr[m].length())
					{
						a *= 10;
						break;
					}
				}
				else if (arr[m][j] == ' ')
				{
					b = a;
					a = 0;
					continue;
				}
			}
			cout << b << '*' << a << '=' << b * a << endl;
			cout << number(a) + number(b) + number(a * b) + 2<<endl;

		}
		else
		{
			if (sig == 'a')//+
			{
				int a = 0, b = 0;
				char sig = arr[m][0];
				for (int j = 0; j < arr[m].length(); j++)
				{
					if (arr[m][j] <= '9' && arr[m][j] >= '0')
					{
						a += arr[m][j] - '0';
						while (arr[m][j + 1] != ' ' && (j + 1) != arr[m].length())
						{
							a *= 10;
							break;
						}
					}
					else if (arr[m][j] == ' ')
					{
						b = a;
						a = 0;
						continue;
					}
				}
				cout << b << '+' << a << '=' << b + a << endl;
				cout << number(a) + number(b) + number(a + b) + 2<<endl;
			}
			else if (sig == 'b')//-
			{
				char sig = arr[m][0];
				int a = 0, b = 0;
				for (int j = 0; j < arr[m].length(); j++)
				{
					if (arr[m][j] <= '9' && arr[m][j] >= '0')
					{
						a += arr[m][j] - '0';
						while (arr[m][j + 1] != ' ' && (j + 1) != arr[m].length())
						{
							a *= 10;
							break;
						}
					}
					else if (arr[m][j] == ' ')
					{
						b = a;
						a = 0;
						continue;
					}
				}
				cout << b << '-' << a << '=' << b - a << endl;
				cout << number(a) + number(b) + number(a + b) + 2<<endl;

			}
			else if (sig == 'c')//*
			{
				int a = 0, b = 0;
				char sig = arr[m][0];

				for (int j = 0; j < arr[m].length(); j++)
				{
					if (arr[m][j] <= '9' && arr[m][j] >= '0')
					{
						a += arr[m][j] - '0';
						while (arr[m][j + 1] != ' ' && (j + 1) != arr[m].length())
						{
							a *= 10;
							break;
						}
					}
					else if (arr[m][j] == ' ')
					{
						b = a;
						a = 0;
						continue;
					}
				}
				cout << b << '*' << a << '=' << b * a << endl;
				cout << number(a) + number(b) + number(a * b) + 2<<endl;
			}
		}
	}
	return 0;
}
2023/3/5 13:08
加载中...