// 讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
//
// 輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裏保證n小於10100。
//
// 輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1 空格,但一行中最後一個拼音數字後沒有空格。
// 輸入樣例:1234567890987654321123456789
//
// 輸出樣例:yi san wu
#include <stdio.h>
#include <string.h>
int main(void)
{
char num[101]; // 用來存儲用戶輸入,因爲題目限制輸入的數最大不過10的100次方,所以這個空間就夠用了
int sum = 0; // 用來存儲各位的和
int ssum[3]; // 用來分位存儲sum的值,因爲其值據題義不會超過900,所以這個空間夠用了
char pinyin[10][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };
scanf("%s", num);
for (int i = 0; i < strlen(num); i++)
sum += num[i] - '0';
int i; // i用來記錄在ssum數組中有幾位是有效的
// 在下面這個循環中,將算出來的和sum以數組的形式逆向存儲在ssum數組中
for (i = 0; sum != 0; i++)
{
ssum[i] = sum % 10;
sum /= 10;
}
// 該循環結束後,ssum數組中有i個數字爲有效值,
// 將ssum數組中的值逆序輸出,輸出樣式對應着pinyin數組中的內容
for (; i >0; i--)
{
printf("%s", pinyin[ssum[i - 1]]);
if (i != 1)
printf(" ");
}
return 0;
}
// 該題略有意思,計算機等級考試二級C語言65分水平,適宜於熟悉C語言的基礎
1002 寫出這個數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.