念数字

题目 念数字 (10 分)

输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出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 n,num,cnt=1,j=0,d;
  scanf("%d",&n);
  if(n==0)
     printf("ling");
  else{

  if(n<0){
  	printf("fu ");
  	n=-n;
  }
  num=n;
  while(num){
    num/=10;
    cnt*=10;
    j++;
  }
  cnt=cnt/10;
  num=n;
  while(j){
    d=num/cnt;
    num%=cnt;
    cnt/=10;
    switch(d)
    {
     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(j!=1)
      printf(" ");
    j--;
   }
 }
  return 0;
}

原文地址:https://www.cnblogs.com/lmcmha/p/10127703.html