八十分求助,测试数据0明明是一样的但是就是过不了QAQ
查看原帖
八十分求助,测试数据0明明是一样的但是就是过不了QAQ
1077407
jkluio1楼主2024/3/23 21:07
#include<iostream>
#include<string>
#include<vector>
using namespace std;
#if 1
int main()
{
	char s[100];
	vector<char>sp1, sp2;
	int flag1=0,flag2=0,i = 0, j = 0, k = 0;
	cin >> s;
	if (s[0] == '0'&&strlen(s) == 1)
	{
		cout << 0;
		return 0;
	}
	int t=strlen(s);
	for (i=t-1;i>=0;i--)
	{
		if (s[i] == '%')
			continue;
		if (s[i] < '0' || s[i] >'9')
	            break;
		sp1.push_back(s[i]);
	}
	if(s[t-1]=='%')
	sp1.push_back(s[t-1]);
	if (i==-1)
	{
		for (j = 0; j <sp1.size(); j++)
		{
			if (sp1[0] == '0'&&flag1==0)
				while (sp1[j]== '0')
				{
					j++; flag1= 1;
				}
			cout << sp1[j];
		}
		return 0;
	}//int ,%
		for (j = i - 1; j >= 0; j--)
			sp2.push_back(s[j]);
		sp2.push_back(s[i]);
		for (k = 0; k < sp2.size(); k++)//分子,浮点数整数部分;
		{
			if (sp2[0] == '0' && flag1 == 0)
			{
				while (sp2[k] == '0')
				{
					k++;
					flag1 = 1;
				}
			}
			cout << sp2[k];
		}
		if (s[i] == '/')//分母
		{
			for (k = 0; k < sp1.size(); k++)
			{
				if (sp1[0] == '0' && flag2 == 0)
				{
					while (sp1[k] == '0')
						k++;
					flag2 = 1;
				}
				cout << sp1[k];
			}
		}
		else
		{
			int t = sp1.size() - 1;
			if (sp1.size() == 1)
			{
				cout << 0;
				return 0;
			}
			if (sp1[t]== '0'&&flag2==0)
				while (sp1[t] == '0')
				{
					sp1.pop_back();
					flag2 = 1;
					t--;
				}
			for (k = 0; k < sp1.size(); k++)
				cout << sp1[k];
		}
}
2024/3/23 21:07
加载中...