c语言求出伍位数,简介 模拟银行的钱数大写输出例如345叁肆伍方法/步骤 首先打开VC++ 文件》》》新建 创建一个C++空白文档 先声明头文件复制代码 代码...
简介
模拟银行的钱数大写输出例如
345
叁肆伍
方法/步骤
首先打开VC++
文件》》》新建
创建一个C++空白文档
先声明头文件
#include
声明变量
char *p[10]={"零","一","二","三","四","五","六","七","八","九"};
由于用到了自定义函数,所以先声明
void PrintInterger(char a[], int len);/*输出整数部分 */
void PrintDecimal(char a[],int len);/*输出小数部分 */
函数1,用于输出整数部分,主要是用switch case进行匹配转换
void PrintInterger(char a[], int len)
{
int i, j, tag1, tag2, tag3;
tag1=(a[len-6]=='0' && a[len-7]=='0' && a[len-8]=='0');
tag2=(a[len-14]=='0' && a[len-15]=='0' && a[len-16]=='0');
tag3=(a[len-22]=='0' && a[len-23]=='0' && a[len-24]=='0');
printf("您的钱数是:n");
for(i=0,j=len; i0; i++,j--)
{
if(a[i] == '0' && i != len-1)
{
if((j == 5 && tag1) || (j == 13 && tag2) || (j == 21 && tag3 ))
;
else if((j == 21 && ! tag3 )||(j == 5 && ! tag1)||(j == 13 && ! tag2))
printf("万");
else if(j == 9 || j == 17 )
printf("亿");
else if(a[i+1] == '0' && i != len-1)
;
else if(a[i+1] != '0' && i != len-1)
printf("零");
else
;
}
else if(a[i] == '0' && i == len-1)
;
else if(a[i] != '0')
{
/*阿拉伯数字向汉字的转换*/
switch(a[i])
{
case '1': printf("%s",p[1]); break;
case '2': printf("%s",p[2]); break;
case '3': printf("%s",p[3]); break;
case '4': printf("%s",p[4]); break;
case '5': printf("%s",p[5]); break;
case '6': printf("%s",p[6]); break;
case '7': printf("%s",p[7]); break;
case '8': printf("%s",p[8]); break;
case '9': printf("%s",p[9]); break;
default: printf("error"); ; break;
}
/*输出相应的单位*/
switch(j)
{
case 2:
case 6:
case 10:
case 14:
case 18:
case 22: printf("%s","十"); break;
case 3:
case 7:
case 11:
case 15:
case 19:
case 23: printf("%s","百"); break;
case 4:
case 8:
case 12:
case 16:
case 20:
case 24: printf("%s","千"); break;
case 5:
case 13:
case 21: printf("%s","万"); break;
case 9:
case 17: printf("%s","亿"); break;
default: printf("%s",""); break;
}
}
}
printf("%s","圆");
}
函数2,用于输出小数部分,主要是用switch case进行匹配转换
void PrintDecimal(char a[],int len)
{
int i;
for(i=0; i
{
/*阿拉伯数字向汉字的转换*/
switch(a[i])
{
case '0': printf("%s",p[0]); break;
case '1': printf("%s",p[1]); break;
case '2': printf("%s",p[2]); break;
case '3': printf("%s",p[3]); break;
case '4': printf("%s",p[4]); break;
case '5': printf("%s",p[5]); break;
case '6': printf("%s",p[6]); break;
case '7': printf("%s",p[7]); break;
case '8': printf("%s",p[8]); break;
case '9': printf("%s",p[9]); break;
default: printf("%s",p[0]); ; break;
}
/*输出对应的单位*/
switch(i)
{
case 0: printf("%s","角"); break;
case 1: printf("%s","分"); break;
case 2: printf("%s","厘"); break;
case 3: printf("%s","毫"); break;
default:; break;
}
}
}
主函数,变量的作用我说明了
int main(void)
{
char Number[128];/* 用来存放用户输入的数字 */
char Interger[64], Decimal[64];/* 分别存放输入数的整数和小数部分 */
int lenI,lenD;/* 分别记录整数和小数部分的长度 */
int i,j;
puts("*************************************");
puts("* This is a print program *");
puts("* used in a bank *");
puts("*************************************");
puts("please input the money:");
gets(Number);
i=0;j=0;
/* 处理输入的数的整数部分 */
while((Number[i]!= '/0') && (Number[i]!= '.' )&& (Number[i] >= '0') && (Number[i] <= '9'))
{
Interger[i]=Number[i];
i++;
}
lenI = i;
if(Number[i]== '.')
{
i++;
/*处理输入的数的小数部分*/
while(Number[i]!= '/0' && Number[i] >= '0' && Number[i] <= '9')
{
Decimal[j++]=Number[i++];
}
/* 精确到小数点后4位数 */
if((j >= 4 )&& (Decimal[4] > '5'))
{
Decimal[3]+=1;/* 进行4舍五入操作 */
Decimal[4] = '/0';
}
}
if(j >= 4)
lenD = 4;
else
lenD = j;
PrintInterger(Interger, lenI);
PrintDecimal(Decimal,lenD);
printf("n");
return 0;
}
运行结果
c语言求出伍位数,简介 模拟银行的钱数大写输出例如345叁肆伍方法/步骤 首先打开VC++ 文件》》》新建 创建一个C++空白文档 先声明头文件复制代码 代码...相关推荐
- c语言10个数求立方合并输出,C语言 求出100~999之间的所有“水仙花数”并输出...
"水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身,如:153=1+5+3?,则153是一个"水仙花数".在数论中,水仙花数(Narcissisti ...
- C语言 求出100~999之间的所有“水仙花数”并输出
"水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身,如:153=1+5+3?,则153是一个"水仙花数".在数论中,水仙花数(Narcissisti ...
- 用C语言求出0~999999之间的所有“水仙花数”并输出。
求出0-999999之间的所有"水仙花数"并输出. "水仙花数"是指一个三位数,其各位数字的立方和确好等于该数本身.在数论中,水仙花数(Narcissistic ...
- python 表示金额时,将中文数字的大写的壹贰叁肆伍转换为阿拉伯数字:rmbTrans.trans
在处理表格或word文档时,有时候像金额这种数据,在比较正式的情况下会写成中文的形式,比如壹万叁仟陆佰伍拾元贰角这种,我们如何将它转换为阿拉伯数字表示的1365.2元这种形式呢? 此处介绍一个函数 r ...
- 〖Python自动化办公篇⑧〗- word文件自动化 - 创建并生成 word 文档
万叶集
- 合并当前文件夹下的所有excel文档(修改)
@[TOC]合并当前文件夹下的所有excel文档(修改) '合并当前文件夹下的所有excel文档(修改) '原版来自:怎么把100多个EXCEL文件合并成一个_百度知道 https://zhidao. ...
- Word文档如何进行压缩文件?
Word文档可以帮助大家存储很多文字性的信息,同时文档中也可以插入表格及图片等内容,当文档占用的内存比较大不利于传输时,我们可以对文档进行压缩,很多人不知道Word文档如何进行在线压缩,下面这个教程就 ...
- C语言试题二十四之编写一个函数unsigned function(unsigned w),w使一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。
1. 题目 请编写一个函数unsigned function(unsigned w),w使一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回. 比如:w是1 ...
- c语言程序找出500以内的所有素数,c语言求出给定范围内的所有质数
程序功能: 输入一个整数,要求打印出这个整数以内的所有质数. 程序示例: #include #include #include bool IsPrime(int x) { bool bResult = ...
最新文章
- 第二阶段_第五小节_C#基础3
- 每一个工程师都要学的安全测试,老板再也不用担心服务器被黑
- 区间调度之区间交集问题
- 如何处理 Hybris Accelerator css style 显示不正确的问题
- 2020年中国互联网租车报告
- 内推学弟进了腾讯,看看他的标杆简历!
- Tomcat集群实现源码级别剖析
- python坐标图设计_python 三维坐标图
- Java-Runtime
- 修改/etc/resolv.conf又恢复到原来的状态?[转]
- 重磅!Google ARCore 和京东 AR 联合举办消费应用创新大赛
- ES6深入浅出-1 新版变量声明:let 和 const-1.视频 概述
- 嗅探对方机器,获取机器键盘记录
- 使用Bochs写Hello world
- [数字媒体] PR视频剪辑之竖屏实现横屏旋转切换和大视频文件缩小
- 【彩虹 钢琴伴奏】笔记
- 不同操作系统图片显示发生颠倒,linux ubuntu win7 win10
- 小红旗图标在excel如何输入_Excel用条件格式给数据插上小红旗
- C语言中字符串用strcmp和==比较的问题
- Widows(win10等等)使用过程中的 问题 与 小技巧 ----- 长期积累