题目:
将输入的数字表示出大写数字[0,99999],零十百千万-LSBQW。如100-1B;12001-1W2QL1;11对应1S1而不是S1
代码如下:
#include<stdio.h>
int main(){
int num; //输入数字
int digit[5]; //每位数字
char dying[5] = {'L','S','B','Q','W'}; //对应表
int ct=0;
int flag=0;
int p=0;
while(scanf("%d",&num)!=EOF){
if(num<0 || num>99999)
break;
if(num==0)
printf("L");
while(num>0){
digit[ct]=num%10;
num/=10;
ct++;
}
for(int i=ct-1;i>=0;i--){
if(digit[i]==1 && i==1 && ct==2)
printf("1S");
else if(digit[i]>0 && i>0)
{
printf("%d%c",digit[i],dying[i]);
flag=0;
}
else if(i==0 && digit[i]!=0){
printf("%d",digit[i]);
}
else if(i>0 && flag==0){
for(int j=0;j<i;j++){
if(digit[j]>0){
p=1;
break;
}
}
if(p){
printf("%c",dying[0]);
flag=1;
}
}
}
printf("\n");
}
return 0;
}