C语言数字编码化输出(switch-case)
/*题目内容:你的程序要读入一个整数,范围是[-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; }
原创文章,作者:yu1776151787的博客,如若转载,请注明出处:https://www.zengqueling.com/c%e8%af%ad%e8%a8%80%e6%95%b0%e5%ad%97%e7%bc%96%e7%a0%81%e5%8c%96%e8%be%93%e5%87%baswitch-case/