求解一个关于数组的c程序,该怎么解决

求解一个关于数组的c程序
rt,我想要实现一个这样的功能,求解。比如这样几个数组33 52 56 07
先是判断如果n=4,那么输出3325
如果n=7那么输出3325657,就是这样一个程序,请教我怎么写和入手呢?
------解决思路----------------------
#include <stdio.h>
#define MAX 10
int jing[100];
int N;
int i;

void jingxiang(int val)  // 镜像函数,为jing数组赋值
{
int a,b=1,c;
    
if(val<=1) jing[i++] = val;
else
{
    for(a=0; val>=b; a++,b*=10) ;
c=a;
while(a>=0)
{
jing[i+a] = val/b;
val -=  jing[i+a]*b;
b/=10;
a--;
}
i+=c;
}
}

void main()
{
int arr[MAX];
int a;
       
for(a=0;a<MAX;a++)
scanf("%d",&arr[a]);

printf("请输入N的值:");
scanf("%d",&N);

for(a=0;a<MAX;a++)
{
jingxiang(arr[a]);
}

for(a=0;a<N;a++)    // 这里是输出结果
printf("%d  ",jing[a]);

scanf("%d ",&a);
}
------解决思路----------------------
作为一个C程序员,对
 scanf,sscanf,fscanf
 printf,sprintf,fprintf
这类函数的用法,还是要做到“拳不离手,曲不离口”的。
//比如这样几个数组33 52 56 07
//先是判断如果n=4,那么输出3325
//如果n=7那么输出3325657,
#include <stdio.h>
char b[]={0x33,0x52,0x56,0x07};
char s[9];
int i,n;
int main() {
    for (i=0;i<4;i++) sprintf(s+i*2,"%X%X",b[i]&0xF,(unsigned)b[i]>>4);
    for (n=1;n<9;n++) printf("%.*s\n",n,s);
    return 0;
}
//3
//33
//332
//3325
//33256
//332565
//3325657
//33256570
//