1 #include

2 #include

3

4 struct output //存放中文大写单位或数字的结构体类型

5 {6 char ch[3];7 struct output *next;8 };9 struct output *head1, *psnew1, *p1;10 typedef structoutput output1;11

12 void Num(output1 *p1, char *N, int wei); //函数注释见main后的函数定义部分

13 void Re(output1 *p1, char *R, intre);14 void Di(output1 *p1, char *D, intdi);15

16 voidmain ()17 {18 intt;19 intsign, flag, mark;20 intre, di;21

22 char N[10][3]={"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; //用字符串数组存放中文大写数字和单位

23 char R[3][3]={"拾", "佰", "仟"};24 char D[3][3]={"万", "亿", "兆"};25

26 struct number //存放每一位数字的结构体类型

27 {28 intwei;29 struct number *next;30 };31 struct number *head, *psnew, *p;32 typedef structnumber number1;33

34 printf ("please input the number which you want to convert\n");35 scanf ("%d", &t); //输入要转换的阿拉伯数字

36

37 head=(number1 *)malloc (sizeof(number1));38 psnew=head;39 head->next=NULL;40

41 head1=(output1 *)malloc (sizeof(output1));42 psnew1=head1;43 head1->next=NULL;44

45 while (t!=0) //将输入的阿拉伯数字的各位分离,按从低位至高位的顺序从左至右存放在线性链表中

46 {47 p=(number1 *)malloc (sizeof(number1));48 p->wei=t%10;49 p->next=NULL;50 psnew->next=p;51 psnew=p;52 t=t/10;53 }54

55 psnew=head->next;56 sign=0;57 flag=0;58

59 if (psnew->wei)60 mark=1; //重要变量的必要初始化

61 else

62 mark=0;63

64 re=0;65 di=1;66

67 while (psnew!=NULL) //从左到右扫描链表,进行到中文大写的转化,转换结果存放在ouput类型的链表中

68 {69 if (re==0)70 {71 if (psnew->wei==0)72 {73 if (sign==1)74 {75 if (flag==1)76 {77 p1=(output1 *)malloc (sizeof(output1));78 Num(p1, &N[0][0], 0);79 p1->next=head1->next;80 head1->next=p1;81 }82 }83

84 flag=0;85 if (mark==1)86 mark=0;87 re=re+1;88 }89 else

90 {91 if (sign==0)92 {93 if (di==1)94 {95 p1=(output1 *)malloc (sizeof(output1));96 Num(p1, &N[0][0], psnew->wei);97 p1->next=NULL;98 head1->next=p1;99 }100 else

101 {102 p1=(output1 *)malloc (sizeof(output1));103 Di(p1, &D[0][0], di);104 p1->next=NULL;105 head1->next=p1;106

107 p1=(output1 *)malloc (sizeof(output1));108 Num(p1, &N[0][0], psnew->wei);109 p1->next=head1->next;110 head1->next=p1;111 }112 }113 else

114 {115 if (flag==0)116 {117 p1=(output1 *)malloc (sizeof(output1));118 Di(p1, &D[0][0], di);119 p1->next=head1->next;120 head1->next=p1;121

122 p1=(output1 *)malloc (sizeof(output1));123 Num(p1, &N[0][0], psnew->wei);124 p1->next=head1->next;125 head1->next=p1;126 }127 else

128 {129 if (mark==0)130 {131 p1=(output1 *)malloc (sizeof(output1));132 Num(p1, &N[0][0], 0);133 p1->next=head1->next;134 head1->next=p1;135

136 p1=(output1 *)malloc (sizeof(output1));137 Di(p1, &D[0][0], di);138 p1->next=head1->next;139 head1->next=p1;140

141 p1=(output1 *)malloc (sizeof(output1));142 Num(p1, &N[0][0], psnew->wei);143 p1->next=head1->next;144 head1->next=p1;145 }146 else

147 {148 p1=(output1 *)malloc (sizeof(output1));149 Di(p1, &D[0][0], di);150 p1->next=head1->next;151 head1->next=p1;152

153 p1=(output1 *)malloc (sizeof(output1));154 Num(p1, &N[0][0], psnew->wei);155 p1->next=head1->next;156 head1->next=p1;157 }158 }159 }160 sign=1;161 flag=1;162

163 if (mark==0)164 mark=1;165

166 re=re+1;167 }168 }169 else

170 {171 if (psnew->wei==0)172 {173 if (mark==1)174 mark=0;175

176 re=(re+1)%4;177 if (re==0)178 di=di+4;179 }180 else

181 {182 if (sign==0)183 {184 if (di==1)185 {186 p1=(output1 *)malloc (sizeof(output1));187 Re(p1, &R[0][0], re);188 p1->next=NULL;189 head1->next=p1;190

191 p1=(output1 *)malloc (sizeof(output1));192 Num(p1, &N[0][0], psnew->wei);193 p1->next=head1->next;194 head1->next=p1;195 }196 else

197 {198 p1=(output1 *)malloc (sizeof(output1));199 Di(p1, &D[0][0], di);200 p1->next=NULL;201 head1->next=p1;202

203 p1=(output1 *)malloc (sizeof(output1));204 Re(p1, &R[0][0], re);205 p1->next=head1->next;206 head1->next=p1;207

208 p1=(output1 *)malloc (sizeof(output1));209 Num(p1, &N[0][0], psnew->wei);210 p1->next=head1->next;211 head1->next=p1;212 }213 }214 else

215 {216 if (flag==0)217 {218 p1=(output1 *)malloc (sizeof(output1));219 Di(p1, &D[0][0], di);220 p1->next=head1->next;221 head1->next=p1;222

223 p1=(output1 *)malloc (sizeof(output1));224 Re(p1, &R[0][0], re);225 p1->next=head1->next;226 head1->next=p1;227

228 p1=(output1 *)malloc (sizeof(output1));229 Num(p1, &N[0][0], psnew->wei);230 p1->next=head1->next;231 head1->next=p1;232 }233 else

234 {235 if (mark==0)236 {237 p1=(output1 *)malloc (sizeof(output1));238 Num(p1, &N[0][0], 0);239 p1->next=head1->next;240 head1->next=p1;241

242 p1=(output1 *)malloc (sizeof(output1));243 Re(p1, &R[0][0], re);244 p1->next=head1->next;245 head1->next=p1;246

247 p1=(output1 *)malloc (sizeof(output1));248 Num(p1, &N[0][0], psnew->wei);249 p1->next=head1->next;250 head1->next=p1;251 }252 else

253 {254 p1=(output1 *)malloc (sizeof(output1));255 Re(p1, &R[0][0], re);256 p1->next=head1->next;257 head1->next=p1;258

259 p1=(output1 *)malloc (sizeof(output1));260 Num(p1, &N[0][0], psnew->wei);261 p1->next=head1->next;262 head1->next=p1;263 }264 }265 }266 sign=1;267 flag=1;268

269 if (mark==0)270 mark=1;271

272 re=(re+1)%4;273 if (re==0)274 di=di+4;275 }276 }277

278 psnew=psnew->next;279 }280

281 psnew1=head1->next;282 while (psnew1!=NULL) //输出转换结果

283 {284 printf("%s", &psnew1->ch[0]);285 psnew1=psnew1->next;286 }287 printf("\n");288 }289

290 void Num(output1 *p1, char *N, int wei) //将wei表示的阿拉伯数字转化为中文大写,存放在p1指向的ouput1类型的节点中

291 {292 inti;293 for (i=0; i<=2; i++)294 p1->ch[i]=N[wei*3+i];295 }296

297 void Re(output1 *p1, char *R, int re) //将re表示的组内数字单位转换为中文大写,存放在p1指向的ouput1类型的节点中

298 {299 intj;300 for (j=0; j<=2; j++)301 p1->ch[j]=R[(re-1)*3+j];302 }303

304 void Di(output1 *p1, char *D, int di) //将di表示的每组的最低起始位的数字单位转换为中文大写

305 {306 intk, m;307 m=(di-5)/4;308

309 for (k=0; k<=2; k++)310 p1->ch[k]=D[m*3+k];311 }

c语言编程阿拉伯数字转中文,阿拉伯数字到中文大写数字的转换相关推荐

  1. c语言编程不能用汉字吗,为什么中文不能用来编程?你知道原因吗?

    原标题:为什么中文不能用来编程?你知道原因吗? 学过计算机的应该都知道计算机语言经历了机器语言,汇编(伪机器语言),高级语言三个阶段. 假设我们要计算1+2(数值先不管,我们只看+号,).计算机可不认 ...

  2. c语言编程刷屏怎么办,为什么输入的不是数字就不停刷屏?各位老哥请帮忙

    为什么输入的不是数字就不停刷屏?各位老哥请帮忙 这是我做的一个算工资的程序.输入的是数字的话就正常,如果输入字母之类的就不停刷屏?对了,请问图片怎么传啊,发不上来? 以下是我的代码,我用的是VC6.0 ...

  3. Python:阿拉伯数字转换为中文大写数字(金额的读数规则)

    萌萌帮班里同学做了一个python的编程作业,正好回顾一下python基础知识,以下源码和思考过程,代码全部原创. IDE:pycharm python版本:python3.7 ''' 实验目的:在银 ...

  4. Python 阿拉伯数字转换为中文大写数字

    题目 python练习的一个小实验,  题目如下图: 附阿拉伯数字对应的中文大写: 思路 1. 通过定义一个字典进行阿拉伯数字与大写中文的对比储存 2. 将用户的输入首先分割为整数与小数部分分别进行处 ...

  5. 将阿拉伯数字转换为中文大写数字 —— pyhton实现

    将阿拉伯数字转换为中文大写数字 -- pyhton实现 在银行的日常业务中,常常需要用到将阿拉伯数字转换为中文大写数字的 功能.这次实验将编写一个程序,将用户输入的阿拉伯数字代表的金额,转换为大写数字 ...

  6. Perl/CGI脚本语言编程学习资料及开发工具下载大全

    Practical Extraction and Report Language Perl 最初的设计者为拉里·沃尔(Larry Wall),它于1987年12月18日发表.Perl借取了C.sed. ...

  7. 将阿拉伯数字转换为其对应的中文数字

    郑重声明,尽管这样子不文明,但还是先对这破电脑发泄发泄吧,不对人发泄就没有伤害! 妈蛋,这年头使用电脑太多,离开的电脑就是这么的个东西都写不出来了,真是丢人丢大了! 今天去面试,从市政府做的是8路公交 ...

  8. C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码

    C语言 阿拉伯数字转换为汉语大写数字金额程序分析及源码 数据结构:用一个整型变量储存输入数字   大家可能会感觉用字符串取位更方便一些·· 但是相应的,字符串失去了数字原有的意思 00100和100对 ...

  9. js将阿拉伯数字转换成中文的大写数字

    js将阿拉伯数字转换成中文的大写数字 export const numberToChinese = (num) => {var AA = new Array("零", &qu ...

  10. js将阿拉伯数字翻译成中文的大写数字

    // 将阿拉伯数字翻译成中文的大写数字 export const numberToChinese = (num) => {     var AA = new Array("零" ...

最新文章

  1. docker安装redis提示没有日记写入权限_对 Redis 在 Windows 下的利用方式思考
  2. A Quick Guide For Windows 2008 Server Core
  3. A Router may have only one child element
  4. 5个让你充满健身动力的方法
  5. 解决Spring Boot报错Mapped Statements collection already contains value for...Error while adding the mapp
  6. WCF消息之XmlDictionaryWriter
  7. Redis高可用分布式内部交流(九)
  8. linux中fopen和open的区别,Linux下open与fopen的区别
  9. 如何下载静海区卫星地图高清版大图
  10. python基础-craps赌牌游戏
  11. 海淘 亚马逊 冻结账号 怎么办?
  12. 【Unity开发小技巧】iOS APP下载安装时,如果出现此时无法下载安装APP的字样时,一些解决思路
  13. 抢红包算法--四种抢红包算法对比(附源码)
  14. 柔性电子: Triboelectric Nanogenerator摩擦生电
  15. python3 excel 图表导出图片_使用python代码将excel中的图表导出为图片
  16. OpenCV基础教程——视频的读取与写入(超详细+附代码)
  17. gdb x命令_Coresight及GDB使用介绍 - 大海在倾听
  18. Spring Boot @EnableAutoConfiguration解析
  19. 解决 cnpm : 无法加载文件 C:\Users\hp\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
  20. 如何调整android手机正常颜色,安卓手机怎么调颜色反转

热门文章

  1. 80端口为什么要备案_搞网站的你,不了解一下共享虚拟主机和备案问题
  2. nginx小技巧-动态域名(微信,小程序80端口)
  3. 阿里P7大牛手把手教你!java全栈工程师证书
  4. 1次阿里面试经验,4天走完全部流程,看这里对你有帮助!
  5. 201871010114-李岩松《面向对象程序设计(java)》第一周学习总结
  6. 我的世界服务器自动西瓜,我的世界自动化红石教程 全自动西瓜农场
  7. Python项目部署的三大神器
  8. Rayman的绝顶之路——Leetcode每日一题打卡4
  9. 快速原型软件开发模式
  10. 打印的时候显示域服务器不可用,Win10打印时active directory域服务不可用解决方法...