50分求助,代码看起来很正确但就是不对
查看原帖
50分求助,代码看起来很正确但就是不对
535848
Domoo楼主2023/4/18 00:04

像这样 输入:600.084 输出:6.480. 参照题解的第一篇写的,对照着检查了好几遍完全看不出来错误TvT 真的不知道还有哪里错了,请大佬们指出,非常感谢!

#include<bits/stdc++.h>
using namespace std;

string s;

int main()
{
    cin >> s;
    int cnt = -1;//因为从第0位开始
    char p = 0;//存储符号
    int l = s.size();
    for(int i = 0; i < l; i++)
    {
        if(s[i] >= '0' && s[i] <= '9')
            cnt++;
        else
        {
            p = s[i];
            break;
        }
    }
    
    int x = cnt;
    while(s[cnt] == '0' && cnt > 0)
        cnt--;
    for(int i = cnt; i >= 0; i--)
        cout << s[i];
    
    if(p == 0)
        return 0;
    cout << p;
    if(p == '%')
        return 0;
    l--;
    while(s[x+1] == '0' && x+1 < l)
        x++;
    while(s[l] == '0' && l > x+1)
        l--;
    for(int i = l; i > x; i--)
        cout << s[i];
    cout << endl;
    return 0;
}

2023/4/18 00:04
加载中...