救命!#13 #15数据是啥,两个点没过
查看原帖
救命!#13 #15数据是啥,两个点没过
401411
SF62020楼主2024/3/3 17:26
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

string str;
int pos;

void erasefront(string &a)
{
    int i;
    for(i = 0; i < a.size() - 1; i ++)
    {
        if(a[i] != '0') break;
    }
    a = a.substr(i);
}

void eraseend(string &a)
{
    int i;
    for(i = a.size() - 1; i >= 1; i --)
    {
        if(a[i] != '0') break;
    }
    a = a.substr(0, i + 1);
}

int main()
{

    cin >> str;
    //小数
    if(str.find(".") != string::npos)
    {
        pos = str.find(".");
        string a, b;
        a = str.substr(0, pos);
        b = str.substr(pos + 1);
        reverse(a.begin(), a.end());
        reverse(b.begin(), b.end());
        erasefront(a);
        eraseend(b);
        cout << a << "." << b << endl;
    }
    //分数
    else if(str.find("/") != string::npos)
    {
        pos = str.find("/");
        string a, b;
        a = str.substr(0, pos);
        b = str.substr(pos + 1);
        reverse(a.begin(), a.end());
        reverse(b.begin(), b.end());
        erasefront(a);
        eraseend(b);
        cout << a << "/" << b << endl;
    }
    //百分数
    else if(str[str.size() - 1] == '%')
    {
        string a = str.substr(0, str.size() - 1);
        reverse(a.begin(), a.end());
        erasefront(a);
        cout << a << "%" << endl;
    }
    //整数
    else
    {
        reverse(str.begin(), str.end());
        erasefront(str);
        cout << str << endl;
    }

    return 0;


}

2024/3/3 17:26
加载中...