70分 求助一波

P1307 [NOIP2011 普及组] 数字反转

MissRain @ 2017-05-04 23:04:05

#include<stdio.h>
#include<string.h>
char arr[1000000];
int main()
{
    int i,j;
    scanf("%s",arr);
    if(arr[0]=='-'){
            printf("-");
            for(j=strlen(arr)-1;j>=0&&arr[j]!='-';j--){
                if(arr[j]!='0')
                    printf("%c",arr[j]);
            }
        }
        else{
            for(j=strlen(arr)-1;j>=0;j--){
                if(arr[j]!='0')
                    printf("%c",arr[j]);
            }
        }            
}

by MissRain @ 2017-05-04 23:24:19

哇 扎心了 为何字符数组也能输出 过不了呢

#include<stdio.h>
#include<math.h>
void positiveswap(int n){
    int r=0;
    while(n>0){
        r=r*10+(n%10);
        n/=10;
    }
    printf("%d",r);
    }
void negativeswap(int n){
    printf("-");
    int r=0;
    n=fabs(n);
    positiveswap(n);
}
int main()
{
    int a;
    scanf("%d",&a);
    if(a>=0)
        positiveswap(a);
    else
        negativeswap(a);
}

by 回望今宵 @ 2017-05-06 10:42:22

#include<bits/stdc++.h>
using namespace std;
int main() {
    string s;
    cin>>s;
    int c[11]= {0},j=0;
    for(int i=s.size(); i>=0; i--)
        if(s[i]>='0'&&s[i]<='9') {
            j++;
            c[j]=s[i]-48;
        } else if(s[i]=='-')
            c[0]=10;
    int k;
    for(int i=1;i<=j;i++)
        if(c[i]!=0){
            k=i;
            break;
        }
    if(c[0]==10) cout<<'-';
    for(int i=k;i<=j;i++)
        cout<<c[i];
    return 0;
}

|