首页 > 代码库 > 数的读写

数的读写

读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:
1234567890987654321123456789
输出样例:
yi san wu

 

#include<stdio.h>

int main(){
  char c;
  //c=getchar();
  scanf("%c",&c);
  int a,sum=0;
  while(c>=‘0‘&&c<=‘9‘){//完成字符串整体的读入;
    a=c-48;
    sum+=a;
    //c=getchar();
    scanf("%c",&c);
  }
  int s[100];
  int j,i=0;
  do{
    j=sum%10;
    s[i]=j;
    sum/=10;
    i++;
  }while(sum!=sum%10);//完成对和的每一位的分离
  if(sum==0){//对上面循环的不足之处加以补充
    i=i-1;
  }else{
    s[i]=sum;
  }
 
  for(i;i>=0;i--){
    switch(s[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;
     
    }
    if(i>0) printf(" ");
  }
  printf("\n");
  return 0;
}