您的位置:首页 > 其它

1002. 写出这个数 (20)

2016-09-04 10:02 183 查看
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

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

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

输出样例:
yi san wu

我做本题的思路:

(1)用字符串的形式读取数据;

(2)使用强制转换的方法将数字字符转换为数字,并且求和;

(3)对求和之后的数字对10进行取模运算,并且存在数组中;

(4)为了防止输出的数字相反,在循环中采用递减的方式输出。

源代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
char str[101];
int len;
static int j;
int i,num;
int l[3];
int sum=0;
char py[11][5]={"ling","yi","er","san",
"si","wu","liu","qi","ba","jiu","shi"};
gets(str);
len=strlen(str);
for(i=0;i<len;i++)
{
sum+=((int)(str[i]-48));
}
while(sum!=0)
{
num=sum%10;
sum=sum/10;
j++;
l[j]=num;
}
for(i=j;i>0;i--)
{
printf("%s",py[l[i]]);
if(i>1)
printf(" ");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PAT乙级考试