前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >把数字用拼音表示并输出

把数字用拼音表示并输出

作者头像
zy010101
发布2019-05-25 19:58:53
4380
发布2019-05-25 19:58:53
举报
文章被收录于专栏:程序员程序员

版权声明:本文为博主原创文章,转载请注明博客地址: https://cloud.tencent.com/developer/article/1433382

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>
//这个程序虽然是我写的,但是它设计的的确很2B。 我觉得不写注释,过段时间我自己都不知道自己写的什么。
//测试用例 0 ,123121123,-123121256,1000 ,10023,543000. 
int main()
{
	int num = 0;
	int a = 0;
	
	scanf("%d",&num);
	if(num < 0)		//
	{
		printf("fu ");
		num = abs(num);
	}
	if(num == 0)
	{
		printf("ling");
		return 0;
	} 
	int num_ = 0;
	int flag = 0;		
	int b = num;
	for(int i = 0; 0 != b ;i++)		//检测数字的位数。
	{
		b /= 10;
		flag++;
	}
	for(int i = flag - 1; 0 != num; i--)	//将数字倒过来
	{
		num_ += pow(10,i) * (num % 10);
		num /= 10;
	}
	for(int i = 0; 0 != num_ || flag; i++)//这里中间的判断使用把100倒过来变成1,输出会出错的问题给解决了。
	{
		a = num_ % 10;		//这里是每次去分离最低位数字,所以必须在前面把数字给倒过来。
		switch(a)		//将数字倒过来存在这样一个问题,100——会被变成1,这样无法输出正确结果。
		{
			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;
			}
		}
		num_ /= 10;
		flag--;
		if(0 != flag)		//解决输出格式问题
		{
			printf(" ");
		}
	}
	return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月25日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档