c语言数组的进制转换

img

img

img

img


测试样例是正确的一样,但答案显示错误,求正确的代码,谢谢了。

看着头晕,怎么这么复杂

#include <stdio.h>

void print(int n)
{
    if(n<10)
        printf("%d",n);
    else
    {
        char c = 'A' + n-10;
        printf("%c",c);
    }
}


void fun(int N,int R)
{
    if(N < R)
    {
        print(N);
    }
    else
    {
        fun(N/R,R);
        print(N%R);
    }
}

int main()
{
   int N,R;
   while(scanf("%d%d",&N,&R) != EOF)
   {
       if(N<0)
       {
           printf("-");
           N = -N;
       }
       fun(N,R);
       printf("\n");
   }
   return 0;
}