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. 在Raspbian Stretch系统上设置Home Assistant开机启动

    较新的Linux发行版趋向于用systemd管理守护进程,如果您不确定系统是否正在使用systemd,您可以使用以下命令进行检查: -o comm= 如果上述命令返回字符串systemd,说明系统正在 ...

  2. WEB学习笔记3-开发环境和工具

    WEB前端集成开发环境:Aptana Studio和WebStormWEB前端代码调试:IE浏览器自带的IE Dev Toolbar,Chrome浏览器自带的Developer Tools,Firef ...

  3. centos7的启动流程

    CentOS7的启动流程 uefi或BIOS初始化,开始开机自检 加载mbr到内存 GRUB的阶段 加载内核和inintamfs模块 kernel内核开始初始化,用systemd来代替centos6以 ...

  4. jQuery-3.事件篇---事件对象的使用

    jQuery事件对象的作用 事件中的Event对象容易被初学者忽略掉,可能大多时候初学者不知道怎么去用它,但有些时候它还是非常有用的 一个标准的"click"点击事件 $(elem ...

  5. MSP430G2553 TimerA中断说明

    一.TimerA中断向量. G2553一共有2个TimerA,分别是TimerA0和TimerA1,中断入口地址分别是: TimerA0中断向量名称     <--> 中断源 ------ ...

  6. spring+mybatis的多源数据库配置实战

    前言: 关于spring+mybatis的多源数据库配置, 其实是个老生常谈的事情. 网上的方案出奇的一致, 都是借助AbstractRoutingDataSource进行动态数据源的切换. 这边再无 ...

  7. 【leetcode】461. Hamming Distance

    problem 461. Hamming Distance solution1: 根据题意,所求汉明距离指的是两个数字的二进制对应位不同的个数.对应位异或操作为1的累积和. class Solutio ...

  8. PSP耗时

  9. 非root用户安装python3

    1.下载源码 wget -c https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz 解压: tar xzf Python-3.7.1.tgz ...

  10. JS之clientX,clientY,screenX,screenY,offsetX,offsetY区别

    首先需要知道clientX,clientY,screenX,screenY,offsetX,offsetY 是鼠标事件对象下的几个属性. 之前也一直对这些属性搞的稀里糊涂,看文档上说的也是不太理解,反 ...