题目如下

数据结构:用一个整型变量储存输入数字 大家可能会感觉用字符串取位更方便一些··
但是相应的,字符串失去了数字原有的意思 00100和100对于整型变量来说是一样的
可要是让字符串获取还要有更麻烦的分析才能实现整型变量一个赋值就搞定的事

算法:
从最高位到最低位依次打印,穿插拾万仟佰拾,对最灵活的“零”特殊照顾,最后打印“圆整”
依次打印:
五个函数 void shiwan(int );void wan(int );void qian(int );void bai(int ,int );void shi(int ,int );void ge(int ,int );
函数嵌套调用 例如输入100 会调用bai();shi();ge();三个函数 其中bai();调用shi(); shi();调用ge();以此类推
通过void fpanduan() 按输入数字的位数调用

关键:要后输出0:后一位确定有非0数字后在输出前一个0
因为如果先输出0 的话 100会输出成壹佰零元整··多一个零
可是如何后输出0呢?如果本位是0 那就告诉下一位的函数:我是零 你不是零就提前输出一个零再输出你的,你要是0就告诉下一位···以此类推

#include <stdio.h>
#define ZERO_TRUE  0  //上一个有0
#define ZERO_FALSE 1void welcome();         //欢迎欢迎~~
void fpanduan(int);     //判断数字位数 ,调用相应函数
int shuzi(int); //打印数字专用
void shiwan(int);
void wan(int);
void qian(int);
void bai(int, int);
void shi(int, int);
void ge(int, int);
int main()
{int num;welcome();while (1)        //无限循环~想停点叉~ {printf("---------------------------------------------------\n");printf("输入阿拉伯数字\t999999>输入数字>-999999\n");scanf("%d", &num);fpanduan(num);}
}
void welcome()
{printf("---------------------------------------------------\n");printf("\t程序功能:转换阿拉伯数字为汉语大写数字\n");printf("\t最大支持:999999>输入数字>-999999\n");printf("\t结束程序:请直接点叉\n");printf("\t开发人员:blacknet EMail:blacknet99@yahoo.com\n");printf("---------------------------------------------------\n");
}
void fpanduan(int num)
{if (num > 999999) { printf("太大了啊!请重新输入\n"); return; }else if (num > 99999) { shiwan(num); }else if (num > 9999) { wan(num); }else if (num > 999) { qian(num); }           //直接调用预设无0else if (num > 99) { bai(num, ZERO_FALSE); }else if (num > 9) { shi(num, ZERO_FALSE); }else if (num > -1) { ge(num, ZERO_FALSE); }else { printf("负"); fpanduan(-num); }    //负的就是多输出个负 return;
}
void shiwan(int num)
{shuzi(num / 100000);//int截断保留十万位,NULL调用shuzi函数 printf("拾");wan(num - 100000 * (num / 100000));    // num减掉十万位 传给wan函数
}
void wan(int num)
{shuzi(num / 10000);printf("万");qian(num - 10000 * (num / 10000));
}
void qian(int num)
{if (0 == num / 1000) { bai(num - 1000 * (num / 1000), ZERO_TRUE); }      //告诉百位千位是0 else{shuzi(num / 1000);printf("仟");bai(num - 1000 * (num / 1000), ZERO_FALSE);}    //
}
void bai(int num, int zero)
{if (0 == num / 100) { shi(num - 100 * (num / 100), ZERO_TRUE); }else{if (ZERO_TRUE == zero) printf("零");shuzi(num / 100);printf("佰");shi(num - 100 * (num / 100), ZERO_FALSE);}
}
void shi(int num, int zero)
{if (0 == num / 10) { ge(num - 10 * (num / 10), ZERO_TRUE); }else{if (ZERO_TRUE == zero) printf("零");shuzi(num / 10);printf("拾");ge(num - 10 * (num / 10), ZERO_FALSE);}
}
void ge(int num, int zero)
{if (0 == num) { ; } //如果是0 只输出 圆整else{if (ZERO_TRUE == zero) printf("零");shuzi(num);}printf("圆整\n");
}
int shuzi(int num)      //只负责打印数字
{switch (num){case 1: {printf("壹"); break; }case 2: {printf("贰"); break; }case 3: {printf("叁"); break; }case 4: {printf("肆"); break; }case 5: {printf("伍"); break; }case 6: {printf("陆"); break; }case 7: {printf("柒"); break; }case 8: {printf("捌"); break; }case 9: {printf("玖"); break; }}
}

948-阿拉伯数字转换为汉语大写数字金额相关推荐

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

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

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

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

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

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

  4. 阿拉伯数字转换为汉字大写数字

    阿拉伯数字转换为汉字大写数字: 首先需要建立两个视图: create view V_HZNumber as     SELECT 0 F1,'零' F2,'个' F3 UNION     SELECT ...

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

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

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

    这个功能使用场景不多,百度也能找到很多相关代码,只不过我找了几个看的不是很明白,为了锻炼自己的思维能力,所以就干脆自己写了一个,不仅分享代码,同时也分享一下我的思路 JS代码 let moneyCas ...

  7. 正则也很牛,把阿拉伯数字的金额转换为中文大写数字

    using System; using System.Text.RegularExpressions; class Program {   // 把阿拉伯数字的金额转换为中文大写数字   static ...

  8. 金额阿拉伯数字转换为中文大写

    最近的做项目中需要弄一个金额是阿拉伯数字转为中文大写的金额,自己偷懒了,就总结一下. 第一种方法相对复杂 private static readonly String cnNumber = " ...

  9. VB 阿拉伯数字转换为中文大写数值函数

    Private Function CChinese(StrEng As String) As String If Not IsNumeric(StrEng) Or StrEng Like " ...

  10. win7计算机名改成大写,处置win7系统将word中的阿拉伯数字转换成大写数字的还原方案...

    随着电脑的使用率越来越高,我们有时候可能会遇到对win7系统将word中的阿拉伯数字转换成大写数字进行设置,如果我们需要对win7系统将word中的阿拉伯数字转换成大写数字进行设置时,要怎么处理win ...

最新文章

  1. crossvalind函数 (交叉验证函数)
  2. Biorhythms ACM PKU http://acm.pku.cn/JudgeOnline/problem?id=1006
  3. 如何使用SQLite
  4. AppSettings和ConnectionStrings的区别
  5. iOS-UICollectionView自定义布局
  6. python封装:隐藏对象中的属性或方法(三分钟读懂)
  7. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(三)密码修改以及密码重置...
  8. 【Oracle】删除重复记录
  9. c++ 的 stl模板库_C ++中的标准模板库(STL)
  10. 洛谷P1018乘积最大——区间DP
  11. 在排序数组中查找数字
  12. 【愚公系列】2022年02月 Django商城项目 29-商品浏览历史记录功能实现
  13. 小米note 卡在android,小米note怎么插卡?小米note详细插卡教程分享
  14. xposed框架安装使用步骤
  15. 计算机无法连接路由器上网,为什么路由器无法连接到网络,但是路由器无法连接到互联网!...
  16. 数据挖掘简介及学习路径介绍
  17. eslint报“Extra semicolon“错误的解决
  18. 网易企业邮箱SMTP
  19. 吉林教育杂志吉林教育杂志社吉林教育编辑部2022年第28期目录
  20. 项目管理和流程的拙见

热门文章

  1. 中芯国际任命高永岗为董事长 周子学辞任执行董事职务
  2. 腾讯测试岗(部分附答案)
  3. Guns二次开发(十四):集成 ueditor 富文本编辑器
  4. 在虚拟机上搭建中标麒麟Neokylin6桌面版开发环境
  5. 汇编 fsub ,fmul,fdiv,fild,CVTTPS2PI 指令
  6. deepfacelab训练多久_DeepFaceLab进阶:H128,DF,SAE模型有何不同?哪个最好?
  7. HBuilderX 快捷键
  8. 轻松入门腾讯云COS部署 + 配置CDN
  9. phpstudy教程之自带ftp server使用方法详解(图文)
  10. 南京大学计算机学院刘向阳,刘向阳  南京大学计算机科学与技术系教授_光通信名人录_光邻网...