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. header头 下载文件 参数详解

    header( header( header( header( header( header( header( header( header( //2 浏览器不会响应缓存 //1 Public指示响应 ...

  2. 停止node进程和查看react-native-cli

    taskkill /f /t /im node.exe which react-native

  3. 小程序视频播放组件video

    最近在做一个视频播放的功能,要求如下: 1.实现视频的全屏播放: 2.实现视频相关信息的展示: 3.实现视频滑动上下切换效果: 肯定选择用原生组件video了,真是不用不知道,一用都是坑: 首先,组件 ...

  4. AI之旅(5):正则化与牛顿方法

    前置知识   导数,矩阵的逆 知识地图   正则化是通过为参数支付代价的方式,降低系统复杂度的方法.牛顿方法是一种适用于逻辑回归的求解方法,相比梯度上升法具有迭代次数少,消耗资源多的特点. 过拟合与欠 ...

  5. POJ1064 Cable master(二分 浮点误差)

    题目链接:传送门 题目大意: 给出n根长度为1-1e5的电线,想要从中切割出k段等长的部分(不可拼接),问这个k段等长的电线最长可以是多长(保留两位小数向下取整). 思路: 很裸的题意,二分答案即可. ...

  6. Go小爬虫测试

    package main import ( "fmt" "io/ioutil" "log" "net/http" ) t ...

  7. 12集合(3)-----Map

    一.总体分类 Collection(包括方法add,remove,contains,clear,size) List(接口) LinkedList ArrayList Vector---Stack 2 ...

  8. C语言中的二维数组

    1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...

  9. 组件_ UIToolbar

    组件_ UIToolbar  /** 1. 顶部toolbar 2. TextField可以以UIBarButtonItem的自定义视图的方式加入toolbar 3. 三个按钮 4. 将UIBarBu ...

  10. Hibernate 相关配置

    hibernate.temp.use_jdbc_metadata_defaults 它是用来控制是否应该向JDBC元数据来确定某些设置默认值,在数据库某些服务不可用的设置为 *不*,在某些工具中开发是 ...