1002. 写出这个数 (20)

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

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

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main()
 5 {
 6     int sum = 0,i=0;
 7     int s1,s2,s3;  
 8     char temp;
 9     char py[10][5]= { "ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
10     while( (temp=getchar())!='
' && i<101)
11     {
12         sum += ( temp-'0'); //读入的数小于10的100次方,故至多有100位,
13                             //故加起来的和小于9*100,即sum是三位数
14         i++;
15     }
16     s3 = sum/100;  //百位
17     s2 = ( sum/10 )%10;  //十位
18     s1 = sum%10;  //个位
19     if( s2==0 && s3==0)  //百位十位为0
20         printf("%s",py[s1]);
21     else if( s3==0 && s2!=0 ) //百位为0
22     printf("%s %s",py[s2],py[s1]);
23     else printf("%s %s %s",py[s3],py[s2],py[s1]);
24     return 0;
25 }
在这个国度中,必须不停地奔跑,才能使你保持在原地。如果想要寻求突破,就要以两倍现在速度奔跑!
原文地址:https://www.cnblogs.com/yuxiaoba/p/8468583.html