读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
#include <stdio.h> #include <stdlib.h> #include <string.h> void PrintHanzi(char ch) { switch(ch) { 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; case '0': printf("ling"); break; } } int main() { int sum=0,midNum=0,szlen=0,i=0,sum_rev=0,szlensum=0; char* Num_in=(char*)malloc(1000*sizeof(char)); char Num_out[100]; gets(Num_in); szlen=strlen(Num_in); for(i=0;i<szlen;i++) { char* midChar=(char*)malloc(2*sizeof(char)); midChar[0]=Num_in[i]; midNum=atoi(midChar); sum+=midNum; midNum=0; free(midChar); } sprintf(Num_out,"%d",sum); szlensum=strlen(Num_out); for(i=0;i<szlensum-1;i++) { PrintHanzi(Num_out[i]); printf(" "); } PrintHanzi(Num_out[szlensum-1]); free(Num_in); return 0; }