读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
思路:
简单模拟题,注意细节即可
1 #include<stdio.h> 2 #include<string.h> 3 #define MAX 100000 4 int main() 5 { 6 char numArr[MAX]; 7 // gets(numArr);//gets(stringName)默认读到字符串换行才结束读取 8 scanf("%s",numArr);//此方法读取字符数组,默认遇到空格表示结束 9 // puts(numArr); 10 int length = strlen(numArr); 11 // printf("%d ",length); 12 int num = 0; 13 for(int i=0;i<length;i++) 14 { 15 num+=(numArr[i]-'0');//char类型减去一个'0'转换为int 类型 16 } 17 int arr[MAX]; 18 // printf("%d ",num); 19 int tmp = num; 20 int cnt = 0; 21 while(tmp) 22 { 23 arr[cnt++] = tmp%10; 24 tmp/=10; 25 } 26 for(int i=cnt-1; i>=0; i--) 27 { 28 if(arr[i] == 0) 29 printf("ling"); 30 else if(arr[i] == 1) 31 printf("yi"); 32 else if(arr[i] == 2) 33 printf("er"); 34 else if(arr[i] == 3) 35 printf("san"); 36 else if(arr[i] == 4) 37 printf("si"); 38 else if(arr[i] == 5) 39 printf("wu"); 40 else if(arr[i] == 6) 41 printf("liu"); 42 else if(arr[i] == 7) 43 printf("qi"); 44 else if(arr[i] == 8) 45 printf("ba"); 46 else if(arr[i] == 9) 47 printf("jiu"); 48 if(i) 49 printf(" "); 50 } 51 return 0; 52 }