1.实验代码:

7-1 币值转换 (20 分)

输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。

include<stdio.h>

include<math.h>

int main()

{

int yuan,chu_2,chu_1,i,p,a=0;

char op;

scanf("%d",&yuan);

chu_1=yuan;
for(i=-1;chu_1!=0;i++){
chu_1=chu_1/10;
}
int A[i];
chu_1=yuan;
for(a=0;chu_1!=0;i--,a++){ //从最大数位开始逐个取出各数字
p=pow(10,i);
chu_2=chu_1/p;
chu_1=chu_1%p;
switch(chu_2){ //从最大数位开始逐个输出
case 0:op='a';break;
case 1:op='b';break;
case 2:op='c';break;
case 3:op='d';break;
case 4:op='e';break;
case 5:op='f';break;
case 6:op='g';break;
case 7:op='h';break;
case 8:op='i';break;
case 9:op='j';break;
}
A[a]=chu_2; //记录数字
if(chu_2==0){ //零为特殊情况,需要单独判断
if(i==6&&A[a-1]!=0)
printf("W");
if(i==5&&A[a-1]!=0)
printf("W");
if(i==4&&A[a-1]!=0)
printf("W");
if(A[a-1]!=0&&i<8) //若前一位不为零,则输出零
printf("%c",op);
}
if(chu_2!=0) //不为零的情况可以直接按规律输出
printf("%c",op);
if(i==5&&chu_2!=0) //当数位大于万位时是特殊情况,需要调整大写字母的输出
printf("S");
if(i==6&&chu_2!=0)
printf("B");
if(i==7&&chu_2!=0)
printf("Q");
if(i==8&&chu_2!=0)
printf("Y");
if(i-1>=0&&chu_2!=0&&i-1<=4) //数位小于或等于万位时为通常情况,直接按规律输出
switch(i){
case 1:printf("S");break;
case 2:printf("B");break;
case 3:printf("Q");break;
case 4:printf("W");break;
}
}
if(yuan==0) //若币值为零,则直接输出字母a后结束程序
printf("a");
return 0;

}

2.设计思路

输入对应的数值

int a,b,c,d,e,n,i,j,m,N,k;

调用scanf函数和for语句

代码分为输出代表数字的小写字母部分和代表数位的大写字母部分。

切记从高位数到低位数的分离

小写字母部分又分为数字为零的特殊情况和非零的通常情况,大写字母部分又分为数位大于万位的特殊情况和小于等于万位的通常情况。

第三步通常情况都为直接输出对应的字母,特殊情况按情况讨论。

3.本题调试过程碰到问题及解决办法

问题





解决方法

在编译器上面进行编译运行,发现错误,并翻阅书籍,然后一个一个解决错误

4.运行结果截图

![](https://img2018.cnblogs.com/blog/1582777/201902/1582777-20190219152708426-1911425784.png

2018秋寒假作业5—PTA编程总结2的更多相关文章

  1. 2018秋寒假作业6—PTA编程总结3

    1.实验代码 7-1 抓老鼠啊~亏了还是赚了? (20 分) 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T) ...

  2. 2018秋寒假作业4—PTA编程总结1

    7-1 打印沙漏 (20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 所谓"沙漏形状",是指每行输出奇数个符 ...

  3. 2018秋寒假作业4——PTA编辑总结1

    #include<stdio.h> #include<math.h> int main(void) { int n,i,j,p,m,ge,N,k; char op; ){ sc ...

  4. 2018秋寒假作业6- -PTA编程总结3

    PTA3抓老鼠啊~亏了还是赚了?思路: 首先定义变量并初始化为零,然后用if-else语句判断其关系和计算奶酪数量及盈利情况.

  5. 2018秋寒假作业4- -PTA编程总结1

    PTA1打印沙漏.打印沙漏中的“沙漏形状”,就是每行输出的奇数符号与各行符号中心对齐:相邻两行符号数相差2:符号数从大到小递减到1,再从小到大递增.在做的时候出了几次错,编译发先是几个小地方出错了.以 ...

  6. Q114寒假作业之割绳子

    割绳子 TimeLimit:1000MS  MemoryLimit:10000K 64-bit integer IO format:%lld Problem Description 已知有n条绳子,每 ...

  7. 网易云课堂_C++程序设计入门(下)_第10单元:月映千江未减明 – 模板_第10单元 - 单元作业:OJ编程 - 创建数组类模板

    第10单元 - 单元作业:OJ编程 - 创建数组类模板 查看帮助 返回   温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提 ...

  8. 网易云课堂_C++程序设计入门(下)_第7单元:出入虽同趣,所向各有宜 – 文件输入和输出_第7单元 - 作业2:编程互评

    第7单元 - 作业2:编程互评 查看帮助 返回   提交作业(剩余10天) 完成并提交作业     作业批改 互评训练   互评作业   自评作业     成绩公布 查看成绩   由于在线编程不支持 ...

  9. Luogu P2717 寒假作业(平衡树)

    P2717 寒假作业 题意 题目背景 \(zzs\)和\(zzy\)正在被寒假作业折磨,然而他们有答案可以抄啊. 题目描述 他们共有\(n\)项寒假作业.\(zzy\)给每项寒假作业都定义了一个疲劳值 ...

随机推荐

  1. ADO.Net中DataSet的应用

    一.知识点描述 1.DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.也就是说,即使断开数据链路,或者关闭数据库,Data ...

  2. python基础---列表生成器、迭代器等

    一.列表生成式 用来创建list的表达式,相当于for循环的简写形式 语法: [表达式 for循环 判断条件] ''' 普通写法 ''' def test(): l= [] for i in rang ...

  3. PKU《程序设计》专项课程_递归汉诺塔问题

    取自coursera.org上公开课北京大学<C程序设计进阶> 递归调用注意的点 1.关注点放在求解的目标上,递推是,目标放在开头 2.找到第N次和第(N-1)次之间的关系,通项公式 3. ...

  4. Springboot,SSM框架比较,区别

    百度搜 Springboot,SSM框架区别,大多说的都是 1.springboot一个应用是一个可执行jar 2.将原有的xml配置,简化为java配置 他们说的确实没错,可是根本没有说到本质,百度 ...

  5. python基础(八)

    一.token加盐处理# import itsdangerous## salt='sdf234^#$@G'# t = itsdangerous.TimedJSONWebSignatureSeriali ...

  6. mysql的分表与分区的区别

    http://www.2cto.com/database/201503/380348.html

  7. 【Unity Shader】---常用帮助函数、结构体和全局变量

    [Unity Shader]---常用帮助函数.结构体和全局变量 一.内置包含文件 Unity中有类似于C++的包含文件.cginc,在编写Shader时我们可以使用#include指令把这些文件包含 ...

  8. Mybatis---架构图

  9. 使用python读取MS-SQL数据库

    使用python读取MS-SQL中的数据,这里使用到模板pymssql. 因为不是python自带的模板,所以首先需要使用pip安装,对应命令:pip install pymssql 建立main.p ...

  10. JAVA工具类-StrUtils

    public class StrUtils { public static final String UTF_8 = "UTF-8"; /** * 去掉小数字符串后面无用的零 */ ...