这道题思路比较简单,就是坑比较多
#include<stdio.h>
int main()
{
char a[10]={'a','b','c','d','e','f','g','h','i','j'},
b[10]={' ',' ','S','B','Q','W','S','B','Q','Y'};//定义数组a,b,等下可以用下标来输出
int num,count=0,arr[10]={1},i=0,val=0,k,flag=0;
scanf("%d",&num);
if(num==0) printf("a");
else
{
while(num)//倒序保存
{
i++;
arr[i]=num%10;
num=num/10;
count++;
}
for(int j=count;j>0;j--)//倒序保存,所以--
{
if(val>0) //控制只输出一个零
{
val--;//减到零就又可以判断了
continue;
}
flag=0;
if(arr[j]==0&&val==0)
{
for(k=j-1;arr[k]==0;k--)
{
val++;
}
if((k+1!=5&&k>4)||(k+1!=1&&k+1<=4)) flag=1;//把万以前的和万以后的分开
}
else
{
printf("%c", a[arr[j]]);
if(j!=5&&j!=1) printf("%c",b[j]);//j!=1一定要加上,不然最后会输出一个空格
}
if(j==5&&count>=5) printf("W");//万这个单位比较特殊单独输出
if(flag) printf("a");
}
}
return 0;
}