90分 卡在了输入0 求助!!!
查看原帖
90分 卡在了输入0 求助!!!
930718
Eason_lyx楼主2023/10/17 17:57

输入0应该输出什么? 附代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
    if(s.find('.')!=string::npos)//小数
    {
        bool flag=1;
        int pos=s.find('.');
        int i=pos-1;
        while(s[i]=='0')i--;
        for(;i>=0;i--)
        {
            flag=0;
            printf("%c",s[i]);
        }
        if(flag)printf("0");
        printf(".");
        i=pos+1,flag=1;
        while(s[i]=='0')i++;
        for(int j=s.size()-1;j>=i;j--)
        {
            flag=0;
            printf("%c",s[j]);
        }
        if(flag)printf("0");
    }
    else if(s.find('/')!=string::npos)//分数
    {
        bool flag=1;
        int pos=s.find('/');
        int i=pos-1;
        while(s[i]==0)i--;
        for(;i>=0;i--)
        {
            flag=0;
            printf("%c",s[i]);
        }
        if(flag)printf("0");
        printf("/");
        i=s.size()-1;
        while(s[i]=='0')i--;
        for(;i>pos;i--)
        {
            printf("%c",s[i]);
        }
    }
    else if(s[s.size()-1]=='%')//百分数
    {
        int i=s.size()-2;
        while(s[i]=='0'&&i!=0)i--;
        for(;i>=0;i--)
        {
            printf("%c",s[i]);
        }
        printf("%%");
    }
    else{//整数
        int i=s.size()-1;
        while(s[i]=='0')i--;
        for(;i>=0;i--)
        {
            printf("%c",s[i]);
        }
    }
    return 0;
}
2023/10/17 17:57
加载中...