题目:
思路:
先用字符串数组存储输入数字,然后依据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 }