过不了测试点怎么办,就差几个

img


#include
#include
#include

int main()
{
int a,b,d;
scanf("%d%d",&a,&b);
char c[10];
int i,k,t=0,j;
float s=0.0,r;
int x[1000];
char y[1000];
char z[8];

scanf("%s",c);
d=strlen(c);

for(k=0;kif(c[k]==46)
      break;
    
}
if(k==d-1)
{
    k=d;
}


for(i=0;iif(c[i]>=48&&c[i]<=57) 
    {
        c[i]=c[i]-48;
    }
    else
        c[i]=c[i]-87;
            
    t=t+c[i]*pow(a,k-1-i);
}
for(i=k+1;iif(c[i]>=48&&c[i]<=57) 
    {
        c[i]=c[i]-48;
    }
    else
        c[i]=c[i]-87;
    s=s+c[i]*pow(a,k-i);
}


i=0;j=0;
if(b!=10)
{
    if(t==0)
      printf("0");
    while(t!=0)
    {
        x[i]=t%b;
        t=t/b;
        i++;
        j++;
    }
    j--;
    for(i=0;i<=j;i++)
    {
        if(x[i]<10)
            y[j-i]=x[i]+48;
        else
            y[j-i]=x[i]+87;
    
    }
    for(i=0;i<=j;i++)
    {
        printf("%c",y[i]);
    }
    if(k!=d)
         printf(".");
    for(i=0;ir=s*b;
        z[i]=r;
        if(z[i]>=0&&z[i]<=9)
        {
            z[i]=z[i]+48;
        }
        else
            z[i]=z[i]+87;
        
        s=r;
        
    }
    
    for(i=0;i"%c",z[i]);
    }
    
}
else
{
    if(s==0)
      printf("%d",t);
    else
      printf("%f",t+s);

}
  

return 0;

}