用拼音輸出一個數字的各位數字之和,這個或許比上面的標題恰當。這裡我第一次用到了sprintf()(stdio.h)這個函數,我本來是要找itoa()(stdlib.h)函數來著,查資料一看,說這個函數不是ANSI的標准函數,而且完全可以用sprintf()替代,此外,這個函數還是非常強大的,此處未用到,mark一下,下面是題設要求及代碼實現
/* Name: Copyright: Author: Date: 01/04/15 10:37 Description: 讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。 輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。 輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。 輸入樣例: 1234567890987654321123456789 輸出樣例: yi san wu */ #include <stdio.h> #include <string.h> int main() { // freopen("in.txt", "r", stdin); // for test char * num[] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"}; char ch, s[3], * p; int sum, l; p = s; sum = 0; while((ch = getchar()) && ch != '\n') sum += ch - '0'; sprintf(p, "%d", sum); l = strlen(s); int i; for(i = 0; i < l; i++) { printf("%s", num[s[i] - '0']); if(i != l - 1) printf(" "); else printf("\n"); } // fclose(stdin); // for test return 0; }