C语言——念整数

来源:互联网 发布:立体设计软件下载 编辑:程序博客网 时间:2024/06/08 01:21

你的程序要读入一个整数,范围是[-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>
void num(int i)
{
 switch(i){
  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;
 }
}
void main()
{
 int n,mask=1,t,d;
 printf("Input your number:");
 scanf("%d",&n);
 if(n<0){
  printf("fu ");
  n=abs(n);  //取绝对值
 }
 t=n;
 while(t>9){  //获取整数的位数
  t=t/10;
  mask*=10;
 }
        do{   //获取高位的拼音并且逐渐去掉最高位
  d=n/mask;
  num(d);
  if(mask>0){
   printf(" ");
  }
  n%=mask;
  mask/=10;
      } while(mask>0) ;  
}

原创粉丝点击