作者在 2020-03-22 20:35:32 发布以下内容
/*题目内容:你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:一个整数,范围是[-100000,100000]。
输出格式:表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:-30
输出样例:fu san ling*/
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main() {
int info,i,var,count=0,var_1,var_2,COUNT;
scanf("%d",&info);
var=info;//变量寄存
//量取数字位数
while(info){count++;
info/=10;
}
//条件前缀
if (var<0)printf("fu ");
if (var==0){printf("ling");return 0;}
var=abs(var);//取绝对值
var_1=var/10;
COUNT=count-1;
while(COUNT--){
switch(i=var_1/(int)pow(10,COUNT)){
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;
default:break;
}
var_1=var_1%(int)pow(10,COUNT);
printf(" ");//循环一次输出一空格
}
//控制空格后一个数
var_2=var%10;
switch(var_2){
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;
default:break;
}
//printf("%c",8);//ASCll退格符
return 0;
}