为什么一个都通不过,在编译器上都可以

P1307 [NOIP2011 普及组] 数字反转

Rye_Catcher @ 2017-10-03 09:38:33

不知道为何我的代码一分也得不到;

一开始我用math.h和abs它识别不出来,改完之后却数据全错,怎么回事

#include <stdio.h>
int num[12];
int main()
{
    int N,n,i=0,k;
    scanf("%d",&N);
    if(N>0) n=N;
         else n=-N;
    do
    {
    if((n<10)&&(i==0)) {
        printf("%d",n);
        return 0;
    }
    k=n%10;n=n/10;
    printf("%d ",n);
    num[i]=k;
    i++;
    if(n<10) {num[i]=n; break;}    
    }while(1);
    for(k=0;k<=i;k++)
      {
          if(N<0&&k==0) printf("-");
          if(num[0]==0&&k==0) {k++;goto F1;}
F1:       printf("%d",num[k]);
      }
    return 0;
}0.

by Rye_Catcher @ 2017-10-03 09:47:22

好吧刚刚重新检查发现了错误。

这是改正后的:(请忽略math.h 和abs)

#include <stdio.h>
#include <math.h>
int num[12]={0};
int main()
{
    int N,n,i=1,k;
    scanf("%d",&N);
    n=abs(N);
    do
    {
    if((n<10)&&(i==1)) {
        printf("%d",n);
        return 0;
    }
    k=n%10;n=n/10;
//    printf("%d ",n);
    num[i]=k;
    i++;
    if(n<10) {num[i]=n; break;}    
    }while(1);
    for(k=1;k<=i;k++)
      {
          if(N<0&&k==1) printf("-");
          if(num[k]==0&&num[k-1]==0) {continue;}
   printf("%d",num[k]);
    F1: ;
      }
    return 0;
}

|