PAT (Basic Level) Practice (中文)1002

1002 写出这个数 (20 分)

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789 

输出样例:

yi san wu

     
     
#include <stdio.h>
#include <stdlib.h>
int main ( void )
{
     int total = 0 ,m,i = 0 ,a[ 4 ];      //最大不会超过10000,数组a有4个元素
     char num = 0 ;
     char * digit[ 10 ] = { "ling" , "yi" , "er" , "san" , "si" , "wu" , "liu" , "qi" , "ba" , "jiu" };
    
     while ((num = getchar ()) != ' \n ' )
        total = total + num - '0' ;         //输入累加
     do
    {
        a[i] = total % 10 ;               //取出最低位数放入数组a
        i ++ ;
        total = total / 10 ;
    } while (total);
     if (i != 1 )                         //为符合输出要求
        {
             for (m = i;m > 1 ;m -- )
                 printf ( " %s " ,digit[a[m - 1 ]]);
             printf ( " %s\n " ,digit[a[ 0 ]]);
        }
     else
         printf ( " %s\n " ,digit[a[ 0 ]]);
system ( "pause" );
     return 0 ;
}

猜你喜欢

转载自www.cnblogs.com/cqce/p/10082301.html