题目描述:将输入的阿拉伯数字转化为大写汉字输出,备注:输入为9位数以下,高出报错。
例如:输入234—输出为贰佰叁拾肆,输入123456789—输出为壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖。
是上个月大疆笔试的测开编程题,后来复盘时发现网上没有很好的C语言版本,于是把我的答案贴出来做个记录。
编译环境:C
解题思路:因为时间比较紧,所以就是建立如下的查询字典,找对应的数据然后提取并输出:
char a[10][4] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
char b[6][4] = { "整","拾","佰","仟","万","亿" };
(由于汉字是占2个字符,属于const char[3]类型的数据,选用char a[10][4]这样的二维数组进行定义)
首先是提取出输入数据的位数与每一位的数字:
while (n != 0)
{
r[i] = n % 10; //r[]中存放每一位的数据
i++;
n /= 10;