题目描述
乐天堂游戏公司推出了一款具有语音报分功能的新款游戏机。该游戏机在游戏结束后报告玩家获得的分数。你正好是开发小组中一员,并且负责对给定的分数得出它的中文读音这个模块的任务。 也就是说,给定一个整数,请你输出这个数字的发音应该念成哪几个字。
输入
第一行包含一个整数n(1≤n≤200)表示测试用例的个数。其后的n行中,每行包含有一个整数k(0≤k<100000)。
输出
每个测试用例的输出单独占一行,输出整数k的发音对应的文字。0-9还是以数字形式输出,十百千万分别用它们的拼音的第一个字母的大写表示,即为S、B、Q、W。
样例输入
5
0
10
203
1008
12345
样例输出
0
1S
2B03
1Q08
1W2Q3B4S5
我的程序:
#include
#include
int main()
{
int a,b,different,j;
scanf("%d",&a);
for(j=0;j<a;j++)
{
scanf("%d",&b);
different=b/10;
switch(different){
case 0:printf("%d\n",b);break;
case 1:printf("%dS\n",b/10);break;
case 10:printf("%dB%dS%d\n",b/100,b%100/10,b%100%10); break;
case 100:
printf("%dQ%dB%dS%d\n",b/1000,b%1000/100,b%1000%100/10,b%1000%100%10);break;
case 1000:printf("%dW%dQ%dB%dS%d\n",b/10000,b%10000/1000,b%10000%1000/100,b%10000%1000%100/10,b%10000%1000%100%10);break;
}
}
return 0;
}
问题1:
部分结果输出不了
问题2:
碰到0不输出后面表示位数的大写字母