讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。數組
每一個測試輸入包含 1 個測試用例,即給出天然數 n 的值。這裏保證 n 小於 10^100 。測試
在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。code
1234567890987654321123456789
yi san wu
#include<stdio.h> #include<string.h> int main() { int i=0,sum =0;//用於計算輸入數字每一位的和 int j=0; int goalvalue; char arr[100];//用於儲存輸入的數,數太大,用字符數組去儲存 char output[10][10]; scanf("%s",arr); for(i=0;arr[i]!='\0';i++) { sum+=(arr[i]-'0'); } while(sum!=0) { goalvalue=sum%10;//用於獲取個十百對應的數字 switch(goalvalue) { case 0: strcpy(output[j],"ling"); break; case 1: strcpy(output[j],"yi"); break; case 2: strcpy(output[j],"er"); break; case 3: strcpy(output[j],"san"); break; case 4: strcpy(output[j],"si"); break; case 5: strcpy(output[j],"wu"); break; case 6: strcpy(output[j],"liu"); break; case 7: strcpy(output[j],"qi"); break; case 8: strcpy(output[j],"ba"); break; case 9: strcpy(output[j],"jiu"); break; } j++; sum=sum/10; //獲取對應的數 } j--;//進行逆序輸出,由於結束循環以前value進行了+1操做 for(;j>0;j--) { printf("%s ",output[j]); } printf("%s",output[0]); return 0; }