PAT1002.寫出這個數
阿新 • • 發佈:2019-01-07
本題主要涉及到基本的字串、字串陣列操作。
n%10取低位(餘數),n/10取高(去除最低位)。
#include <stdio.h>
#include <string.h>
int main(){
char c[101];
char pinyin[][9]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int a[10];
int i,n=0,t=0;
gets(c);//讀入一串字元。這裡實際上是資料,但是由於是char型別的,由ASCII碼可以進行轉換
for(i=0;i<strlen (c);i++)
n=n+c[i]-'0';//當成字元型別讀入時轉換成數字型別要減去0的ASCII碼
while(n!=0){
a[t]=n%10;//用a[]陣列儲存n由低到高的每個數字
n=n/10;
t++;}
printf("%s",pinyin[a[t-1]]);//數字到拼音的轉換,拼音由二維陣列存起來的,注意最高位的索引值是t-1而不是t
for(i=t-2;i>=0;i--)
printf(" %s",pinyin[a[i]]);
return 0;
}