80分求助
查看原帖
80分求助
871868
songshihao666888楼主2023/1/2 17:09
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
	char num[1000];
	cin >> num;
	char sign = '0'; int loc;//记录符号位置
	for (int i = 0; i < strlen(num); i++)
	{
		if (num[i] == '.')
		{
			loc = i;
			sign = num[i];
			break;
		}
		if (num[i] == '/')
		{
			loc = i;
			sign = num[i];
			break;
		}
		if (num[i] == '%')
		{
			loc = i;
			sign = num[i];
			break;
		}
	}
	if (sign == '0')
	{
		reverse(num, num + strlen(num));
		int zero;//记录第一个不是零的位置
		for (int i = 0; i < strlen(num); i++)
		{
			if (num[i] != '0')
			{
				zero = i;
				break;
			}
		}
		//cout << zero;
		for (int i = zero; i < strlen(num); i++)
		{
			cout << num[i];
		}
	}
	if (sign == '.')//11.1111
	{
		reverse(num, &num[loc]);
		reverse(&num[loc + 1], &num[strlen(num)]);
		int zero;//记录第一个不是零的位置
		for (int i = 0; i < loc; i++)
		{
			if (num[i] != '0')
			{
				zero = i;
				break;
			}
		}
		for (int i = zero; i < loc; i++)
		{
			cout << num[i];
		}
		cout << '.'; int len=0;//特殊情况小数点后只有一个零计算小数点后长度
		for (int i = loc+1; i<strlen(num); i++)
		{
			if (num[i]!= NULL)
			{
				len++;
			}
		}
		if (len == 1 && num[loc + 1] == '0')
		{
			cout << num[loc + 1];
		}
		else
		{
			for (int i = strlen(num) - 1; i > loc; i--)
			{
				if (num[i] != '0')
				{
					zero = i;
					break;
				}
			}
			for (int i = loc + 1; i <= zero; i++)
			{
				cout << num[i];
			}
		}
	}
	if (sign == '/')
	{
		reverse(num, &num[loc]);
		reverse(&num[loc + 1], &num[strlen(num)]);
		int zero;//记录第一个不是零的位置
		for (int i = 0; i < loc; i++)
		{
			if (num[i] != '0')
			{
				zero = i;
				break;
			}
		}
		for (int i = zero; i < loc; i++)
		{
			cout << num[i];
		}
		cout<<'/';
		for (int i = loc+1; i <strlen(num); i++)
		{
			if (num[i] != '0')
			{
				zero = i;
				break;
			}
		}
		for (int i = zero; i < strlen(num); i++)
		{
			cout << num[i];
		}
	}
	if (sign == '%')
	{
		reverse(num,num+strlen(num)-1);
		int zero;//记录第一个不是零的位置
		for (int i = 0; i < loc; i++)
		{
			if (num[i] != '0')
			{
				zero = i;
				break;
			}
		}
		for (int i = zero; i < strlen(num); i++)
		{
			cout << num[i];
		}
	}
	return 0;
}
2023/1/2 17:09
加载中...