写出这个数 (PAT)

1.题目描述

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

2.输入描述:

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

3.输出描述:

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

4.输入例子:

1234567890987654321123456789

5.输出例子:

yi san wu

6.解题思路:

最简单是思路就是
第一步:将字符串各数字转换为整数并求和
第二步:将各数之和的每一位单独存在整数数组中(0需要单独处理
第三步:根据数组每个值输出相对应的拼音(注意空格的输出

7.源代码:

#include<stdio.h>
#include<string.h>
int main()
{
	int i,k=0,sum=0;
	char n[101];		
	scanf("%s",n);
	int len=strlen(n);
	for(i=0;i<len;i++)
		sum+=n[i]-'0';
	int num[5];
	if(sum==0)
		num[k++]=0;
	else
	{
		while(sum)
		{
			num[k++]=sum%10;
			sum=sum/10;
		}
	}
	for(i=k-1;i>=0;i--)
	{
		switch(num[i])
		{
			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;
		}
		if(i)
			printf(" ");
	}
	printf("\n");
	return 0;
}
全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
totoroyyw:千年老妖😂
投递华为等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务