求助大佬,75分,真的看不出错误
查看原帖
求助大佬,75分,真的看不出错误
939536
snow_y楼主2023/4/16 12:28
#include<iostream>
#include<string>
using namespace std;
int main()
{
	char t='i';
	string a;
	int n,i;
	cin >>a;
	for (i = 0; i < a.size(); i++) {
		if ((int)a[i] < '0' || (int)a[i]>'9')
		{	
			t = a[i];
			break;
		}
	}
	if (t == 'i')
	{
		while (a.rfind('0') == (a.size() - 1) && a.size() != 1)
		{
			a.erase(a.size() - 1, 1);
		}
		for (int j = a.size() - 1; j >= 0; j--)
		{
			cout << a[j];
		}
	}
	else if(t == '.')
	{
		string s1 = a.substr(0, i);
		string s2 = a.substr(i + 1, a.size() - i - 1);
		while (s1.rfind('0') == (s1.size()-1) && s1.size() != 1)
		{
			s1.erase(s1.size()-1, 1);
		}
		while (s2.find('0') ==0 && s2.size() != 1)
		{
			s2.erase(0, 1);
		}
		for (int j = s1.size() - 1; j >= 0; j--)
		{
			cout << s1[j];
		}
		cout << '.';
		for (int j = s2.size() - 1; j >= 0; j--)
		{
			cout << s2[j];
		}
	}
	else if (t == '/')
	{
		string s1 = a.substr(0, i);
		string s2 = a.substr(i + 1, a.size() - i - 1);
		while (s1.rfind('0') == (s1.size() - 1) && s1.size() != 1)
		{
			s1.erase(s1.size() - 1, 1);
		}
		for (int j = s1.size() - 1; j >= 0; j--)
		{
			cout << s1[j];
		}
		cout << '/';
		for (int j = s2.size() - 1; j >= 0; j--)
		{
			cout << s2[j];
		}
	}
	else if (t == '%')
	{
		for (int j = a.size() - 1; j >= 0; j--)
		{
			if (a.rfind('0') != -1) {
				a.erase(j, 1);
			}
			else break;
		}
		for (int j = a.size() - 1; j >= 0; j--)
		{
			cout << a[j];
		}
		cout << '%';
	}
	return 0;
}```
2023/4/16 12:28
加载中...