输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出
fu
字。十个数字对应的拼音如下:0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu
输入格式:
输入在一行中给出一个整数,如:
1234
。提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如
yi er san si
。输入样例:
-600
结尾无空行
输出样例:
fu liu ling ling
C语言:
#include<stdio.h>
int main()
{
//接收整数
int a;
scanf("%d",&a);
//利用二维数组存储拼音,一维数组程序会越界
//b[1]就是yi,b[6]就是liu
char b[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
//如果a<0,输出“fu”,并且将a转化为正数
if(a<0)
{
printf("fu ");
a=-a;
}
//利用数组存储每位数字
int c[30]={0};
//i用来记录数组c的长度
int i;
//利用循环将数字存储到数组中
for(i=0;a!=0;i++)
{
c[i]=a%10;
a/=10;
}
//利用循环将数组c的内容转化为拼音打印
//要反序打印,因为数组c的第一位是整数a的最后一位
//打印的时候后面要跟一个空格,将不同的拼音隔开
//不能打印到最后一个,否则输出的整体最后会有空格,答案错误
for(int j=i-1;j>0;j--)
{
//c[j]是几,b[c[j]]就会输出c[j]的拼音
printf("%s ",b[c[j]]);
}
//将最后一位打印
printf("%s",b[c[0]]);
return 0;
}
Python:
# 接收整数,其中a为字符串
a=input()
# 列表b用来存储拼音,b[1]就是yi,b[9]就是jiu
b=["ling","yi","er","san","si","wu","liu","qi","ba","jiu"]
# 用循环来打印数字的拼音
# 不能用for i in a,这样写无法控制只输出到倒数第二位
# 因为如果整数a前面有数字和最后一位一样,用if判断i和最后一位是否相等就会出错,没到最后一位就会终止循环
for i in range(len(a)-1):
# 如果a中存在'-',打印“fu”
if a[i]=="-":
print("fu",end=' ')
else:
# 此时剩下的全为数字,可以类型转换
j=int(a[i])
print("{}".format(b[j]),end=' ')
# 打印最后一位
j=int(a[len(a)-1])
print("{}".format(b[j]))