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
#include<stdio.h>
int main()
{
int x,i;
char *s[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
//直接整个数组
int a[20],n;
n=1;//初始化
scanf("%d",&x);
if(x<0)//如果是负数则单独输出fu后转化为正数方便运算
{
printf("fu ");
x=-x;
}
//如果不是负
a[0]=x%10;//先取个余,把各位拎出来,放第一位
while(x/10>0)//从数字倒数第二位开始,挨个拎出来
{
x=x/10;//取整,把前一个判断过的踢出去,变成个新数
a[n]=x%10;//再对新数取个位
n++;
}
for(i=n-1;i>0;i--)//循环输出,个位前面有,不用
{
printf("%s ",s[a[i]]); //大肠(s[],字母)套小肠(a[i]就是每个位对应的数字)
}
printf("%s",s[a[0]]);//单独输出第一位,没有空格
return 0;
}
这个题和那个7-23币值转换思路有点类似,还比那个简单些。总而言之,有了之前的经验后面的题那交一个越做越顺哈哈哈哈~希望有帮助,一起努力!