渣渣演变之路

1. 写出这个数 

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

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

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

  输入样例:
  1234567890987654321123456789
  输出样例:
  yi san wu
代码:
#include<stdio.h>
void print_num(int num)      //定义输出函数,输入对应的数字
{
    char num_str[4]={0};      //定义一个字符数组,将和数字转化为字符串存储
    char *team = num_str;      //定义指针team指向数组的首地址
    sprintf(num_str,"%d",num);   //调用sprintf函数,sprintf函数的作用为,将整型数字转化为字符串存储在字符数组中
    while(*team != '\0')      //循环至数组末尾
    {
        switch(*team)        //运用switch函数进行选择式输出,注意其格式
        {
            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:          
                break;
        }
        team++;             //指针向后移动
        if(*team!='\0')        
            printf(" ");        
        else
            printf("\n");
    }

}

int main()
{
    char num[101];        //规避数太大而超出范围,将其运用字符串的形式,定义一个字符数组       
    char *team = num;      
    scanf("%s",num);      //输入字符串,存储在数组中
    int total=0;
    while(*team != '\0')    
    {
        total += (*team - '0');      
        team++;
    }
    print_num(total);        //调用输出函数
    return 0;
}

  

 
posted @ 2017-09-01 16:01  双人余555  阅读(202)  评论(0编辑  收藏  举报