C++求助

P1307 [NOIP2011 普及组] 数字反转

Mark_666 @ 2022-05-25 15:53:15

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a;
    int pd=0;
    int iiii=0;
    cin>>a;
    int len=a.size();
    string b;
    int j=len-1;
    for(int i=0;i<len;i++)
    {
        if(a[i]=='-')
        {
            b[i]='-';
            pd=1;
        }
        if(a[i]>='0'&&a[i]<='9')
        {
                b[len]=a[i];
        }
        j--;
    }
    if(b[1]==0&&pd==1)
        b[1]='.';
    if(b[0]==0&&pd!=1)
        b[0]='.';
    for(int i=0;i<len;i++)
    {
        if(b[i]>=1&&b[i]<=9||b[i]=='-')
            cout<<b[i];
    }
    return 0;
}

我感觉写的代码怪怪的


by Mc_Player__ @ 2022-05-25 15:59:22

@Mark_666 不能直接用数字吗


by 天南星魔芋 @ 2022-05-25 16:07:07

b[len]=a[i];

if(b[i]>=1&&b[i]<=9||b[i]=='-')


by Mark_666 @ 2022-05-25 19:53:02

@天南星魔芋 ?


by 天南星魔芋 @ 2022-05-25 19:54:17

@Mark_666 这两句每句都有错的


by Mark_666 @ 2022-05-25 19:56:09

@天南星魔芋 ok,我看看


by Mark_666 @ 2022-05-25 20:15:49

@天南星魔芋

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string a;
    int pd=0;
    int iiii=0;
    cin>>a;
    int len=a.size();
    string b;
    int j=len-1;
    for(int i=0;i<len;i++)
    {
        if(a[i]=='-')
        {
            b[i]='-';
            pd=1;
        }
        if(a[i]>='0'&&a[i]<='9')
        {
                b[j]=a[i];
        }
        j--;
    }
    if(b[1]==0&&pd==1)
        b[1]='.';
    if(b[0]==0&&pd!=1)
        b[0]='.';
    if(pd==1)
        cout<<'-';
    for(int i=0;i<len;i++)
    {
        if(b[i]>='1'&&b[i]<='9')
            cout<<b[i];
    }
    return 0;
}

这下哪里错了。。。


by 天南星魔芋 @ 2022-05-25 20:23:28

@Mark_666

输入

0

by 天南星魔芋 @ 2022-05-25 20:24:24

输入

102030

by Mark_666 @ 2022-05-25 20:25:11

@天南星魔芋 懂了,懂了,谢谢


by 天南星魔芋 @ 2022-05-25 20:26:40

最好每次改完还是不对时先自己手搓几个样例(可以用题解算答案)


| 下一页