输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu
字。
输入格式:
输入在一行中给出一个整数,如:1234
。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如yi er san si
。
思路:每位数存入数组,逆序输出即可(若为负数,提前输出fu并变正)
代码如下:
#include <stdio.h>
void f(int k);
int main()
{
int num;
int i;
scanf("%d",&num);
if(num<0){
printf("fu ");
num = -num;
}
int buf[10]={0};
int cnt=0;
do{
buf[cnt++]=num%10;//个位数存入数组
num/=10;//sum值改变
}while(num!=0);
for(int i=cnt-1;i>=0;i--){
f(buf[i]);
if(i!=0)
printf(" ");
}
return 0;
}
void f(int k){
switch (k){
case 0:printf("ling");
break;
case 1:printf("yi");
break;
case 2:printf("er");
break;
case 3:printf("san");
break;
case 4:printf("si");
break;
case 5:printf("wu");
break;
case 6:printf("liu");
break;
case 7:printf("qi");
break;
case 8:printf("ba");
break;
case 9:printf("jiu");
break;
}
}
这个数字顺序分解的方法可用于多个题中,如专栏中的1002写出这个数,7-23币值转换