7-25 念数字
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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
分析与答案
对于零,直接输出ling
就可以,如果是负数,那就先输出fu
,然后对输入取反,按照正数来操作。
念数字需要把数字的每一位拆分到数组中,和之前一些题目的操作不同的是,念数字要求从左到右,因此数字取出后,是从右到左遍历,也就是从最大一位一直遍历到个位。
#include <stdio.h>
void output_char(char array[][5],int num);
int main(){
int num = 0, i = 10, count = 0;
char array[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int divide[16] = {0};
scanf("%d",&num);
if(num == 0){
//等于0特殊处理
printf("ling");
return 0;
}
if(num < 0){
printf("fu ");
num = -num;
}
while(num!=0){
divide[count]=num % 10;
num = (num - divide[count])/10;
count++;
}
count--;
for(;count>=0;count--){
output_char(array,divide[count]);
if(count!=0)
printf(" ");
}
return 0;
}
void output_char(char array[][5],int num){
for(int i = 0;array[num][i]!='\0';i++)
printf("%c",array[num][i]);
}