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
;
}