任意进制转换为十七进制问题

img

img


代码运行没问题,答案显示错误,有没有哥们能够解答一下,或者正确的代码应该怎么写?

#include<stdio.h>
int main()
{
    int t,k,x,j,len;
    long sum=0;
    char n[100],num[100];
    scanf("%d",&t);
    for(int i=0;i<t;i++)
    {
        len=0;
        scanf("%d\n",&k);
        //scanf("\n");
        scanf("%s",&n);
        
            sum=0;
            for( j=0;n[j]!='\0';j++)
            {
                
                if(n[j]>='A')//&&n[j]<=k-10+'A')
                    sum=sum*k+(n[j]-'A'+10);
                else
                    sum=sum*k+(n[j]-'0');
               
            }
        long sum1=sum;
        if(sum==0)
        {
            printf("0");
        }
            while(sum1!=0)
        {
            x=sum1%17;
            if(x<=9)
            num[len++]=x+'0';
            else
            num[len++]=x-10+'A';
 
            sum1/=17;
        }
        for(int e=len-1;e>=0;e--)
        {
        printf("%c",num[e]);
        }
        printf("\n");
        }
   return 0;