读入一个正整数 n 计算其各位数字之和 用汉语拼音写出和的每一位数字。

{
int n,m,i,k=1;
printf("enter the n\n");
scanf("%d",&n);
m=n;

 //算输入的数是几位数 
while(n>10){
    n=n/10;
    k++;
} 

 //输出位数 
  printf("The number has %d words\n",k);
  
 //求每位数的大小并放入数组a,ret为各位数之和 
  int a[k],ret=0;
  for(i=0;i<k;i++){
      a[i]=m%10;
      m=m/10;
      ret=a[i]+ret;
  }
  
 //计算ret的位次 
  int x;
  k=1;
  x=ret;
  while(x>10){
      x=x/10;
      k++;
  }
  
  //计算ret的各个位次大小,放入数组e 
  int e[k];
  x=ret;
  for(i=k-1;i>=0;i--){
      e[i]=x%10;
      x=x/10;
  }
  
  for(i=0;i<k;i++){
      printf("%d\n",e[i]);
  }
  
  //
 struct{
      int amount;
      const char *name;
  }number[]={
      {0,"ling" },
      {1,"yi" },
      {2,"er" },
      {3,"san" },
      {4,"si" },
      {5,"wu" },
      {6,"liu" },
      {7,"qi" },
      {8,"ba" },
      {9,"jiu" },     
  };
  
  
  
  for(i=0;i<k;i++){
    for(int a;a<10;a++){
      if(e[i]==number[a].amount){
          printf("%s\n",number[a].name);
      }
    }
  }


return 0;

}

没有输出拼音