写出这个数 (20),PAT(Basic Level) Practise NO.1002

来源:互联网 发布:草图大师for mac 编辑:程序博客网 时间:2024/06/05 08:32

写出这个数 (20)

PAT(Basic Level) Practise NO.1002

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

输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。

这里保证n小于10^100。

输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,

但一行中最后一个拼音数字后没有空格。

输入样例:
1234567890987654321123456789
输出样例:
yi san wu

#include <stdio.h>int sum_of_digital();                       //声明求各位数之和的函数void myprintf(int n);                       //声明格式输出的函数void pinyin_printf(int n);                  //声明拼音输出的函数int main(int argc, char const *argv[]){    int n = 0;                              //用于存储各位数之和    n = sum_of_digital();                   //输入各位数    myprintf(n);                            //按格式要求输出    return 0;}int sum_of_digital()                        //定义求各位数之和的函数{    int temp = 0, num = 0;    char c = '\0';    while( ( c = getchar() ) != '\n' )      //只要输入的字符不是'\n',即为真    {        num = c - '0';                      //输入的数字        temp = temp + num;    }    return temp;}void myprintf(int n)                //定义格式输出的函数{    int temp = 0, i = 0;    char s[4] = {'\0'};    do{        temp = n%10;                //取n尾数        s[i++] = temp;              //将取出的尾数逆序放在数组中        n = n/10;                   //将n缩小一位    }while(n > 0);    do{        temp = (int)s[--i];        pinyin_printf(temp);        //将取出的尾数以拼音的格式输出        if ( i != 0)    printf(" ");    }while(i !=0);    printf("\n");}void pinyin_printf(int n)           //声明拼音输出的函数{    switch (n){        case 0: printf("ling"); break;        case 1: printf("yi");   break;        case 2: printf("er");   break;        case 3: printf("san");  break;        case 4: printf("si");   break;        case 5: printf("wu");   break;        case 6: printf("liu");  break;        case 7: printf("qi");   break;        case 8: printf("ba");   break;        case 9: printf("jiu");  break;        default: printf("error\n");    }}

本人原创代码,对于各位读者的阅读不胜感激。

如有疑惑,可以在下方评论区中提出疑惑,博主将会与读者一起讨论问题。

谢谢!

阅读全文
0 0
原创粉丝点击