07-0. 写出这个数 (20)

来源:互联网 发布:手机淘宝设置在哪里 编辑:程序博客网 时间:2024/05/20 05:24

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

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

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

输入样例:
1234567890987654321123456789
输出样例:

yi san wu

#include<stdio.h>void nianshuzi(int x){int mask = 1;int t = x;while ( t>9 ) {t /= 10;mask *=10;} do {int d = x / mask;switch ( d ) {case 10:case 9:printf("jiu");break;case 8:printf("ba");break;case 7:printf("qi");break;case 6:printf("liu");break;case 5:printf("wu");break;case 4:printf("si");break;case 3:printf("san");break;case 2:printf("er");break;case 1:printf("yi");break;case 0:printf("ling");break;default:printf("\n");break;}if ( mask > 9 ) {printf(" ");}x %= mask;mask /= 10;} while ( mask > 0 );}int main(){char a=0;int b=0,c=0,sum=0; do{    scanf("%c",&a);    c=a-48;    if(a>=0){    if(a=='1')    b=b+1;    else if(a=='2')    b=b+2;    else if(a=='3')    b=b+3;    else if(a=='4')    b=b+4;    else if(a=='5')    b=b+5;    else if(a=='6')    b=b+6;    else if(a=='7')    b=b+7;    else if(a=='8')    b=b+8;    else if(a=='9')    b=b+9;    else if(a=='0')    b=b+0;        }else goto out;    }while(c>=0);nianshuzi(b);out:return 0;}


0 0
原创粉丝点击