输入一个十进制的数,转换成2~16进制之间的数,代码出错地方已经注释,麻烦大佬们解释一下,for语句里面那个数组有没有用错?

#include <stdio.h>int main(){long n,k;int i,j=0;printf("请输入十进制数:\n");scanf("%ld",&n);printf("请输入要转换成的进制:\n");scanf("%d",&i);for(k=n;k>0;k=(k-k%i)/i){ j++;int a[j];a[j-1]=k%i;}for(;j>-1;j--){ if(a[j-1]>9)switch(a[j-1]){ case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;}elseprintf("%d",a[j-1]);} return 0;}出错的地方:如图