题目描述:输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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
思路分析:我们可以先定义一个字符串数组,求出数组的长度,用循环依次读取每一位数字,用switch的语句写,还要注意一点就是行末没有最后的空格,那么我们可以用if语句来进行判断,从第一个字符开始(下标为0),如果不等于最后一个字符的下标(字符长度减1),就打印空格。
代码实现
#include<string.h>
#include<stdio.h>
int main()
{
char str[100]; //定义字符串数组
int i = 0;
scanf("%s", str);//举例输入123
for (i = 0; i < strlen(str); i++)//i小于3,从下标0开始,依次开始读入字符,i=0,为1;i=1时,为2;i=2时,为3
{
switch (str[i])
{
case '-':
printf("fu");
break;
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;
}
if (i != strlen(str) - 1)//为了满足条件打印完最后一个数字时不打印空格
printf(" ");
}
return 0;
}