1002?寫(xiě)出這個(gè)數(shù)?
讀入一個(gè)正整數(shù)?n,計(jì)算其各位數(shù)字之和,用漢語(yǔ)拼音寫(xiě)出和的每一位數(shù)字。
輸入格式:
每個(gè)測(cè)試輸入包含 1 個(gè)測(cè)試用例,即給出自然數(shù)?n?的值。這里保證?n?小于?10?100??。
輸出格式:
在一行內(nèi)輸出?n?的各位數(shù)字之和的每一位,拼音數(shù)字間有 1 空格,但一行中最后一個(gè)拼音數(shù)字后沒(méi)有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
分析:輸入數(shù)據(jù)過(guò)大,采用字符串?dāng)?shù)組輸入,其次,要注意輸出的空格
代碼:
#include<stdio.h>
void py(int i){
? ? ? ? ?switch(i){
? ? ? ? ? ? ? ? case 0:
? ? ? ? ? ? ? ? ? ? ? printf("ling");break;
? ? ? ? ? ? ? ? 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;
? ? ? ? ?}
}
int main()
{
? ? ? char n[105];//存放n的數(shù)組
? ? ? int s[10];
? ? ? int i=0,j=-1,sum=0;
? ? ? scanf("%s",n);
? ? ? while(n[i]!='\0')//計(jì)算n的各位之和
? ? ?{
? ? ? ? ? ?sum+=(n[i++]-48);
? ? ? }
? ? ? while(sum>0){//獲取和的各個(gè)位
? ? ? ? ? ?s[++j]=sum%10;
? ? ? ? ? ?sum/=10;
? ? ? ?}
? ? ? while(j>0){//將s[]中的元素逆序輸出
? ? ? ? ? ?py(s[j--]);//輸出拼音
? ? ? ? ? ?printf(" ");//設(shè)置空格
? ? ? ? }
? ? ? ? py(s[0]);
? ? ? ? return 0;
}