为什么没达到数据范围也可以过?

P1307 [NOIP2011 普及组] 数字反转

efficiency @ 2017-07-17 16:26:39

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
    char str[9999999];
    int flag=0;
    char x;
    scanf("%c",&x);
    if(x=='-'){
        printf("-");
        gets(str);
        for(int i=strlen(str)-1;i>=0;i--){
            if(str[i]!='0')flag=1;
            if(flag)
            printf("%c",str[i]);
        }
    }
    else{
        gets(str);
        for(int i=strlen(str)-1;i>=0;i--){
            if(str[i]!='0')flag=1;
            if(flag)
            printf("%c",str[i]);
        } printf("%c",x);
    }
    return 0;
}
代码是这样 可是字符数组根本没有开那么大啊?

by efficiency @ 2017-07-17 16:32:29

我这里数据范围写的是-1e9到1e9,好像好多人也没有按这个范围写..


|