1002 写出这个数 (20 分)

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100​​。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu

代码:

#include
#include
#include
#include
#include
using namespace std;
//观察到数字是10的100次方,所以用整型变量来存储该数字是不可行的
//10的100次方共101位,可以用长度为102的字符型数组来储存

int main() {
    char a[110],pinyin[11][10]= {"ling","yi","er","san","si","wu","liu","qi","ba","jiu","shi"};
    int sum=0,xiabiao=0,qiuhe[10]={0},i=0;//xiabiao表示数组a的下标
    cin>>a;
    while(a[xiabiao]!='\0') { //把数字的每一位相加放入n之中
        sum+=a[xiabiao]-'0';
        xiabiao++;
    }
    while(sum!=0){//将sum每一位存储进入数组求和之中 
        qiuhe[i]=sum%10;
        sum/=10;
        i++;//i里面存储了数组求和的最高的下标,根据调试结果,这里的i会超过数组的最大下标1位 
    }
    for(int k=i-1;k>=0;k--){//这里一定记得数组下标最大位减1 
        cout<

你可能感兴趣的:(1002 写出这个数 (20 分))