?读入一个正整数?n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数?n?的值。这里保证?n?小于?10的100次方。
输出格式:
在一行内输出?n?的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
? ? char n[100];
?? ?int i,j,k;
? ? scanf("%s",n); ? ?
? ? j = 0;
? ? for (i = 0; n[i]!='\0' ; i++)
? ? {
? ? ? ? j = j + n[i] - '0';
? ? } ? ?
?? ?i=0;k=j;
?? ?while(k>0)
?? ?{
?? ??? ?k/=10;
?? ??? ?i++;
?? ?}?? ?
? ? while (i)
? ? {?? ??? ??? ?
?? ??? ?i=i-1;
?? ??? ?k=(int)pow(10,i);
? ? ? ? switch ( j/k )
? ? ? ? {
? ? ? ? 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;
? ? ? ? }?? ??? ?
?? ??? ?j=j%k;
? ? ? ? if(i>0)
? ? ? ? {
? ? ? ? ? ? printf(" ");
? ? ? ? }
? ? }
}
|