PAT-字符串处理-A 1005 Spell It Right (20分)

题目:

思路:

  先用字符串数组存储输入数字,然后依据num[i]-'0'对输入数字求和。然后对求和后的数字,进行分割,存储到数组中,然后遍历数组,依据存储英文单词的字符串二维数组进行输出

注意点:

  注意输出末尾不能有空格,以及求和结果为0的情况

代码:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int maxn = 110;
 6 
 7 //存储读入的数字
 8 char num[maxn];
 9 
10 //各数字的英文表示
11 char datas[10][7] = { "zero","one","two","three","four","five","six","seven","eight","nine" };
12 
13 //存储求和后的数字
14 int res[10];
15 
16 int main()
17 {
18     //读入数据
19     scanf("%[0-9]", num);
20 
21     int sum = 0, count = 0;
22 
23     //进行求和
24     for (int i = 0;i < strlen(num);i++)sum += (num[i] - '0');
25 
26     //进行分割数字
27     do
28     {
29         res[count++] = sum % 10;
30         sum /= 10;
31     }while (sum != 0);
32     
33     //对数字进行输出
34     for (int i = count - 1;i >= 0;i--)
35     {
36         printf("%s", datas[res[i]]);
37         if (i != 0)printf(" ");
38     }
39 
40     return 0;
41 }
View Code
原文地址:https://www.cnblogs.com/fangzhiyou/p/12489848.html