欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【PAT】1002

程序员文章站 2022-07-15 13:50:12
...

1002 写出这个数 (20 分)

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例: 

yi san wu
#include <iostream>
#include<string.h>
using namespace std;
string getString(int n);
void show(int s,int i);
int main()
{
    string s;
    char ch[100];
    string out[10];
    int i=0;
    int j=0;
    int t=0;
    int sum=0;
    cin>>s;
    strcpy(ch,s.c_str());    //把string 转为char数组
    while(ch[i]!='\0'){
        sum+=ch[i++]-48;
    }
    do{
        t++;
        out[j++]=getString(sum%10);
        sum/=10;
    }while(sum!=0);
    for(int i=t-1;i>=0;i--){
        if(i!=0)
            cout<<out[i]<<" ";
        else
            cout<<out[i];
    }



}


 string getString(int n){    //将n转为拼音
    string s;
    switch(n){
    case 0:
        s="ling";
        break;
    case 1:
        s="yi";
        break;
    case 2:
        s="er";
        break;
    case 3:
        s="san";
        break;
    case 4:
        s="si";
        break;
    case 5:
        s="wu";
        break;
    case 6:
        s="liu";
        break;
    case 7:
        s="qi";
        break;
    case 8:
        s="ba";
        break;
    case 9:
        s="jiu";
        break;
    }
    return s;
}

 主要笔记就是 将 string 转为char数组 可以通过  strcpy(char数组,string.c_str())