阿拉伯数字转化为大写汉字
本文为大一时所写的文章(2017/5/3),文笔还很生疏,在很多问题上认识不深,算是在学校的微信公众号上的一个编程探究模块上的投稿,本人当时也参与了本模块的维护和管理。补档。
首先向大家说一声抱歉,上次因为一些个人原因没有按时更新编程讨论角,下次有什么特殊情况我一定会提前和大家说明原因!
本次的主角是“阿拉伯数字转化为大写汉字”这个算法和代码,在这之前,我们来看看很经典的变量——静态变量(static)和动态变量(auto)
在这里我们先列出静态函数和动态函数的一般声明格式:
Static type name = value——静态函数
Type name = value——动态函数
可见,他们的区别就在于在数据类型前是否有static 的声明。
一、auto的局部变量和全局变量
一般我们在写代码的时候,在数据类型前不加任何说明的时候就是auto变量,这种变量的特点就是在程序执行过程中建立,随函数的调用需要动态的分配存储空间,调用结束释放所占用存储空间,这和函数形参有点相似,如果你在main函数里写一个auto变量,那么在这个程序结束的时候他就会自动释放占用的空间,生存周期是和main函数相同,属于动态局部变量,在未做初始化的时候默认值为垃圾值(即随机数)同样,在用户函数里使用auto函数都认为是局部动态函数,生存周期都在{}内。默认初始值都是随机数。
如果在main函数和用户函数以外的地方的auto就是动态全局变量,她的生存周期是整个源“项目”,即可以被整个项目里的函数进行调用(如果一个源文件有多个文件可以调用那么这些就是一个项目)范围很广,注意,需要在动态全局变量前加上extern声明,表示可用于其它文件中调用。动态全局变量在未进行初始化的情况下值为0.
二、static的局部变量和全局变量
Static的局部变量的作用域为当前函数(main or 用户函数),从定义位置开始,到其所在的{}结束。她的生命周期是程序运行开始到结束,每次调用的时候她的值是不会被初始化的,而是继承上次函数结束时的值,在没有初始化的情况下,值为0。
静态局部变量的使用方法如图所示:
如果是动态局部变量则是:
Static的全局变量位置与动态全局变量相同,但是作用范围只限于本文件,不能被别的文件进行调用,在没有初始化的情况下,值为0。
接下来进入到我们的主角“阿拉伯数字转化为大写汉字”
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{char wei[][4] = {"零","一","二","三","四","五","六","七","捌","玖"};char shu[][4] = {"","拾","佰","仟"};char quan[4]; int num,a; int flag; scanf("%d",&num);if( num < 0)exit(-1);if( num > 9999)exit(-1);a = 0; while(num > 0){quan[a] = num % 10;num /= 10;a++;}flag = 0; for( int i= a -1; i>=0; i--) {if( quan[i] == 1 && i == 1 && a ==2 ) printf("%s",shu[i]); else if( quan[i] > 0) printf("%s%s",wei[quan[i]],shu[i]),flag = 0; else if( i > 0 && flag ==0) printf("%s",wei[0]),flag=1; }printf("\n");return 0;
}
在这里因为大写汉字和阿拉伯数字有个明显的区别就是,大写汉字如果在有两个及以上的零在相邻位上只读一个零,所以本程序的关键就在此,我们构建一个开关变量(flag),初始值为0,在上一位是零的话将开关的值改为1,在下一位输出判断的时候,如果也是零则不输出,如果不是零,则将开关的值又调回0。
其他就是数字的录入和输出的方式了,多看就可以了,主要是要有一个开关的解决思路,在以后的类似问题上开关思想将对你程序的优化大有裨益。
由于本人的能力有限,代码难免出现错误,请各位同学斧正!
阿拉伯数字转化为大写汉字相关推荐
- 关于阿拉伯数字转化成为大写汉字
public class MoneyUtil { /** 大写数字 */ private static final String[] NUMBERS = { "零", " ...
- 将阿拉伯数字转化成大写的人民币数字
将阿拉伯数字转化成大写的人民币数字 public String getNumberToRMB(String m) ... { String num = "零壹贰叁肆伍陆柒捌玖&q ...
- iOS数字金额转化为大写汉字(阿拉巴数字转化为汉字)
本博文想要解决的问题,是将一串阿拉伯数字(包含小数点)转化为对应的大写汉字. 实现思路如下: 1.将这串阿拉伯数字格式化,只取小数点后两位: 2.将字符串分割为整数部分的子串和小数部分的子串: 3.遍 ...
- 一个表格中文字怎么换行_Excel表格中怎样快速将阿拉伯数字转化为大写文字?这样操作一键完成...
在职场办公中,Excel的使用频率可谓是非常高啦.为了保证工作可以按时完成都会学习一些自己需要的Excel技巧来辅助整理表格.今天小编为大家分享怎样快速将Excel表格中的阿拉伯数字转换成大写文字,一 ...
- JSP设置Excel表格换行_Excel中快速将阿拉伯数字转化为大写文字的妙招
在职场办公中,Excel的使用频率可谓是非常高啦.为了保证工作可以按时完成都会学习一些自己需要的Excel技巧来辅助整理表格.今天小编为大家分享怎样快速将Excel表格中的阿拉伯数字转换成大写文字,一 ...
- 数字变成大写的类,把人民币转化为大写汉字
import java.math.BigDecimal; public class ConvertNumber ... { /** *//** 定义数组存放数字对应的大写 */ ...
- mysql大写数字转阿拉伯数字_阿拉伯数字转化为大写
``` //人民币金额转大写程序PHP版 //作者:大V[vsxp] $number = $_GET['num'] ? trim($_GET['num']) : 8421; echo Num2Cny: ...
- 阿拉伯数字转化为中文汉字(大、小写) - PHP
代码 function number2Chinese($num, $m = 1) {switch($m) {case 0:$CNum = array(array('零','壹','贰','叁','肆' ...
- 大写汉字转为阿拉伯数字
/*** 大写汉字转为阿拉伯数字*/ public class ChineseChangeToNumber {/*** 中文简体*/public static final String[] RMB_N ...
最新文章
- Oracle10g客户端远程连接数据库全过程[转]
- Python Cookie HTTP获取cookie并处理
- 如何证明在素数p和2p之间存在另一个素数呢?简单却不完备的证明
- (转)浅析CSS——元素重叠及position定位的z-index顺序
- PHP生成各种验证码和Ajax验证
- JFreeChart(七)之气泡图表​​​​​​​
- 使用AJAX Toolkit创建新闻列表
- 拥抱云原生,Fluid结合JindoFS :阿里云OSS加速利器
- mysql shell 所有表_删除mysql数据库中所有表的shell脚本
- CCF201312--模拟练习试题参考答案(C++)
- 使用一次性密码本通过 SSH 安全登录 Linux
- 物联网VSWiFi 两强争霸还是携手并进?
- 魅族 android版本升级,魅族系统更新APP
- 计算机电脑怎么开热点,电脑怎么设置wifi热点共享
- React 中 Twitter 的 SVG 图标 (icons)
- *POJ1830 高斯消元
- 设计模式的六大设计原则
- android(安卓系统)系统下优秀的笔记软件,小筑笔记app下载 小筑笔记(手机笔记本软件) for Android v1.31 安卓手机版 下载-脚本之家...
- js获取当前时间的前一天/后一天 ,前一月/后一月
- SNN学习笔记-静息电位和平衡电位的理解