题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来.如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:fu er san si yi
输入格式:
一个整数,范围是-100000.1000001
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格.
输入样例:
30
输出样例:
fu san ling
时间限制: 500ms 内存限制: 32000kb
【原创代码】
#include <stdio.h>
int main()
{
int myinput,m,t=0,i,myoutput;
scanf("%d",&myinput);
if(myinput<=-100000||myinput>=100000){
exit(0);
}
if(myinput<0){
printf("fu ");
myinput=(-1)*myinput;
}
m=myinput;
while(m>0){
m/=10;
t++;
}
for(i=t-1;i>=1;i--){
myoutput=myinput/pow(10,i);
switch(myoutput){
case 9:
printf("jiu ");
break;
case 8:
printf("ba ");
break;
case 7:
printf("qi ");
break;
case 6:
printf("liu ");
break;
case 5:
printf("wu ");
break;
case 4:
printf("si ");
break;
case 3:
printf("san ");
break;
case 2:
printf("er ");
break;
case 1:
printf("yi ");
break;
default:
printf("ling ");
break;
}
const int mod=pow(10,i);//强制类转换
myinput=myinput%mod;
}
myoutput=myinput/pow(10,i);
const int mod=pow(10,i);//强制类转换
myinput=myinput%mod;
switch(myoutput){
case 9:
printf("jiu");
break;
case 8:
printf("ba");
break;
case 7:
printf("qi");
break;
case 6:
printf("liu");
break;
case 5:
printf("wu");
break;
case 4:
printf("si");
break;
case 3:
printf("san");
break;
case 2:
printf("er");
break;
case 1:
printf("yi");
break;
default:
printf("ling");
break;
}
return 0;
}