读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10(100)。次方
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
代码如下:
#include<stdio.h>
void put(int* arr, int i)
{
switch (arr[i])
{
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;
case 0:printf("ling"); break;
}
}
int main()
{
char a;
int j, count=0;
a = getchar();
while (a != '\n')
{
count = count + a - '0';//字符中的‘0’和数字做转换!!
a = getchar();
}
int arr[1000] = { 0 };//把shu的每一位存起来
for ( j = 0; count != 0; j++,count/=10)
arr[j] = count % 10;
for (j--; j > 0; j--)
{
put(arr, j);//输出
printf(" ");
}
put(arr,0);
return 0;
}
注意:在读入时,这个数我们不能用long long int 存储的,所以只能用字符来读取
欢迎大家订阅这个专栏,我会在这里分享PAT (Basic Level) Practice 的题目,一起刷题哦