1. 程式人生 > >PAT1002.寫出這個數

PAT1002.寫出這個數

本題主要涉及到基本的字串、字串陣列操作。
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; }