栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1002 写出这个数 (20 分) C语言实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1002 写出这个数 (20 分) C语言实现

#include
int main(void)
{
	char num[101];
	int sum = 0;
	int i = 0;
	char c[10][10] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
	num[i] = getchar();
	while (num[i] != 'n')
	{
		sum += num[i] - '0';
		i++;
		num[i] = getchar();
	}
	//printf("%dn", sum);

	int total = sum;
	int j = 1;
	while (total > 0)
	{
		total /= 10;
		j *= 10;
	}
	j /= 10;
	int y;
	for (; j > 0; j /= 10)
	{
		y = sum;
		y /= j;
		sum %= j;
		printf("%s", c[y]);
		if (j > 1)
			printf(" ");
	}
	return 0;
}

1.利用字符串储存测试的超大数字并且每得到一个数就添加到sum变量中

利用getchar()来每次获得一个字符

字符需转化为整数类型——则用‘0’在ASC码来做基准 从而把字符重新转化为整数类型

循环条件利用输入最后是回车来判断

2.正向分解所得和

经典操作——应该要能立刻写出来

法一:利用循环来将数字每次/10 从而最终得到位数——但这样其实会多一位10(0的数量不能和数字的位数一样 而应该整体和数字位数一样 )

法二:可以利用strlen函数直接得到字符串长度

然后即可循环得到每一位数字

3.利用字符串数组来代替switch-case

利用字符串数组可以巧妙代替switch-case从而节省空间

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/291528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号