题目描述
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出
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>
#include<string.h>
int main(){
int N;
scanf("%d",&N);
//读入整数N的值
char a[1000];//定义一个字符型数组a
snprintf(a,sizeof(a),"%d",N);//利用snprintf()函数将整数N转化为字符串存入数组a中
int x=strlen(a);//测量字符串的长度
int k=0;
if(a[0]=='-'){//判断整数N是否为负数
printf("fu ");
k=1;//若为负数则k的值赋为1
}
for(int i=k;i<x-1;i++){//利用循环从下标k开始遍历
switch(a[i]){//利用switch()函数进行多分支选择判断
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;
}
}
switch(a[x-1]){//当遍历到x-1的下标时,输出不带空格
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;
}
return 0;
}
运行结果
文案分享
雪压枝头低,虽低不着泥,一朝红日出,依旧与天齐!