有没有大佬帮我康康,第十个点re了不知道为啥
查看原帖
有没有大佬帮我康康,第十个点re了不知道为啥
1197516
hblnb1楼主2023/11/20 08:25

#include #include #include using namespace std; string e, h;//中间数组存储中间变量 string a; int main() {
long long int s = 0, b = 0, c = 0, d = 0;//判断是小数整数分数或者是百分数

getline(cin, a);
for (long long int i = 0; i < a.size(); i++)
{
    d = 0;
    if (a[i] == '.')
    {
        s = i;//体现符号的位置
        break;
    }
    if (a[i] == '/')
    {
        b = i;
        break;
    }
    if (a[i] == '%')
    {
        c = i;
        break;
    }
    d = i;
}
if (d == 0 && a[0] == '0')
{
    cout << '0';
}
if (d > 0)
{
    long long   int f = d;
    for (long long int i = a.size() - 1; i >= 0; i--)
    {
        if (a[i] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f; j >= 0; j--)
    {
        cout << a[j];
    }
}
if (s > 0)
{
    long long int num = 0, num2 = 0;
    e = a.substr(0, s);
    h = a.substr(s + 1, a.size());//将小数点前整数部分和小数部分分离出来
    for (long long int k = 0; k < e.size(); k++)
    {
        if (e[k] == '0')
        {
            num++;
        }
    }
    for (long long int j = 0; j < h.size(); j++)
    {
        if (h[j] == '0')
        {
            num2++;
        }
    }
    if (num == e.size() && num2 == h.size())
    {
        cout << '.' << '0';
        return 1;
    }
    for (long long int k = 0; k < e.size(); k++)
    {
        if (e[k] != 0)
        {
            break;
        }
        if (k == e.size() - 1)
        {
            cout << '0' << '.';
        }
    }
    for (long long int k = 0; k < h.size(); k++)
    {
        if (e[k] != 0)
        {
            break;
        }
        if (k == h.size() - 1)
        {
            cout << '0';
        }

    }
    long long int f = e.size();
    for (long long int i = e.size() - 1; i >= 0; i--)
    {
        if (e[i] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << '.';
    f = h.size();
    for (long long int o = h.size() - 1; o >= 0; o--)
    {
        if (h[o] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    if (num2 == h.size())
    {
        cout << '0';
        return 0;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        if (h[0] == '0' && j == 0)
        {
            break;
        }
        cout << h[j];
    }
}
if (b > 0)//与上述同理其实,将符号前后分割出来
{
    e = a.substr(0, b);
    h = a.substr(b + 1, a.size());//将小数点前整数部分和小数部分分离出来
    long long  int f = e.size();
    for (long long int i = e.size() - 1; i >= 0; i--)
    {
        if (e[i] == '0')
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << '/';
    f = h.size();
    for (long long int o = h.size() - 1; o >= 0; o--)
    {
        if (h[o] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        if (h[0] == '0' && j == 0)
        {
            break;
        }
        cout << h[j];
    }
}
if (c > 0)
{
    e = a.substr(0, c);
    long long  int f = e.size();
    for (long long int i = e.size() - 1; i >= 0; i--)
    {
        if (e[i] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << '%';
}
return 0;

}```cpp #include #include #include using namespace std; string e, h;//中间数组存储中间变量 string a; int main() {
long long int s = 0, b = 0, c = 0, d = 0;//判断是小数整数分数或者是百分数

getline(cin, a);
for (long long int i = 0; i < a.size(); i++)
{
    d = 0;
    if (a[i] == '.')
    {
        s = i;//体现符号的位置
        break;
    }
    if (a[i] == '/')
    {
        b = i;
        break;
    }
    if (a[i] == '%')
    {
        c = i;
        break;
    }
    d = i;
}
if (d == 0 && a[0] == '0')
{
    cout << '0';
}
if (d > 0)
{
    long long   int f = d;
    for (long long int i = a.size() - 1; i >= 0; i--)
    {
        if (a[i] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f; j >= 0; j--)
    {
        cout << a[j];
    }
}
if (s > 0)
{
    long long int num = 0, num2 = 0;
    e = a.substr(0, s);
    h = a.substr(s + 1, a.size());//将小数点前整数部分和小数部分分离出来
    for (long long int k = 0; k < e.size(); k++)
    {
        if (e[k] == '0')
        {
            num++;
        }
    }
    for (long long int j = 0; j < h.size(); j++)
    {
        if (h[j] == '0')
        {
            num2++;
        }
    }
    if (num == e.size() && num2 == h.size())
    {
        cout << '.' << '0';
        return 1;
    }
    for (long long int k = 0; k < e.size(); k++)
    {
        if (e[k] != 0)
        {
            break;
        }
        if (k == e.size() - 1)
        {
            cout << '0' << '.';
        }
    }
    for (long long int k = 0; k < h.size(); k++)
    {
        if (e[k] != 0)
        {
            break;
        }
        if (k == h.size() - 1)
        {
            cout << '0';
        }

    }
    long long int f = e.size();
    for (long long int i = e.size() - 1; i >= 0; i--)
    {
        if (e[i] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << '.';
    f = h.size();
    for (long long int o = h.size() - 1; o >= 0; o--)
    {
        if (h[o] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    if (num2 == h.size())
    {
        cout << '0';
        return 0;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        if (h[0] == '0' && j == 0)
        {
            break;
        }
        cout << h[j];
    }
}
if (b > 0)//与上述同理其实,将符号前后分割出来
{
    e = a.substr(0, b);
    h = a.substr(b + 1, a.size());//将小数点前整数部分和小数部分分离出来
    long long  int f = e.size();
    for (long long int i = e.size() - 1; i >= 0; i--)
    {
        if (e[i] == '0')
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << '/';
    f = h.size();
    for (long long int o = h.size() - 1; o >= 0; o--)
    {
        if (h[o] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        if (h[0] == '0' && j == 0)
        {
            break;
        }
        cout << h[j];
    }
}
if (c > 0)
{
    e = a.substr(0, c);
    long long  int f = e.size();
    for (long long int i = e.size() - 1; i >= 0; i--)
    {
        if (e[i] == '0')//md大傻逼,输的数字0
        {
            f--;
            continue;
        }
        break;
    }
    for (long long int j = f - 1; j >= 0; j--)
    {
        cout << e[j];
    }
    cout << '%';
}
return 0;

}

2023/11/20 08:25
加载中...