7-1 币值转换 (20 分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
代码:#include<stdio.h>
int main (void)
{
int n, value, value1, value2, sum=0, x, value3, qian=1000, y=0, jishuqi=0;
scanf("%d", &n);
value=n/100000000;
if(value!=0){
printf("%cY", 'a'+value);
}
value1=n%100000000;
value2=value1/10000;
while(qian!=0){
if(value2==0){
break;
}
x=value2/qian;
value2=value2%qian;
qian=qian/10;
y++;
if(value==0&&x==0){
if(jishuqi!=1){
continue;
}
}
if(x==0){
sum++;
if(sum<=1) {
if(y!=4){
printf("%c", 'a');
}
}
}
if(x!=0){
sum=0;
jishuqi=1;
printf("%c", 'a'+x);
switch(y){
case 1: printf("Q"); break;
case 2: printf("B"); break;
case 3: printf("S"); break;
}
}
}
if(y!=0){
printf("W");
}
sum=0;
qian=1000;
y=0;
jishuqi=0;
value3=n%10000;
while(qian!=0){
x=value3/qian;
value3=value3%qian;
qian=qian/10;
y++;
if((n%100000000)/10000==0&&x==0){
if(jishuqi!=1){
continue;
}
}
if(value3!=0){
if(x==0){
sum++;
if(sum<=1) {
printf("%c", 'a');
}
}
}
if(x!=0){
sum=0;
jishuqi=1;
printf("%c", 'a'+x);
switch(y){
case 1: printf("Q"); break;
case 2: printf("B"); break;
case 3: printf("S"); break;
}
}
}
if(n==0){
printf("%c", 'a');
}
}

问题:自己做完全看不懂,我在dev-c做了一阵子根本不会,看了别人的,完全有的地方就懵了。仔细看了,设计思路大概也就是if与while联合使用,没有for,但是要想真搞明白还是有问题。
结果:

pta编程总结2的更多相关文章

  1. pta 编程题20 旅游规划

    其它pta数据结构编程题请参见:pta 题目 这个最短路径问题只需要求两点之间的最短路径,因而在Dijikstra算法中当求出目标点的最短路径之后跳出循环即可. #include <iostre ...

  2. pta 编程题21 公路村村通

    其它pta数据结构编程题请参见:pta 题目 这道题考察最小生成树问题,用的是Prim算法. 和Dijkstra算法相比,没有了collect数组,因为dist[v] == 0就代表v被已收录. #i ...

  3. pta编程题19 Saving James Bond 2

    其它pta数据结构编程题请参见:pta 题目 和简单版本不同的是,简单版本只需判断能否到达岸边,而这个版本要求求出最少跳数的路径. 简单版本用dfs实现,而这道题用BFS实现. 注意: 岛半径为7.5 ...

  4. pta 编程题16 Saving James Bond - Easy Version

    其它pta数据结构编程题请参见:pta 题目 主要用到了深度优先搜索. #include <iostream> using namespace std; struct Vertex { i ...

  5. pta 编程题15 列出连通集

    其它pta数据结构编程题请参见:pta 题目 题目要求分别以深度优先搜索和广度优先搜索输出图的连通集. 广度优先搜索要用到队列,先回顾一下循环队列: struct QNode { int* Data; ...

  6. pta 编程题14 Huffman Codes

    其它pta数据结构编程题请参见:pta 题目 题目给出一组字母和每个字母的频数,因为哈夫曼编码不唯一,然后给出几组编码,因为哈夫曼编码不唯一,所以让你判断这些编码是否符合是哈夫曼编码的一种. 解题思路 ...

  7. pta 编程题13 File Transfer

    其它pta数据结构编程题请参见:pta 这道题考察的是union-find并查集. 开始把数组中每个元素初始化为-1,代表没有父节点.为了使树更加平衡,可以让每一个连通分量的树根的负值代表这个连通分量 ...

  8. pta 编程题12 堆中的路径

    其它pta数据结构编程题请参见:pta 这道题考察的是最小堆. 堆是一个完全二叉树,因此可用数组表示,一个下标为 i 的结点的父节点下标为 i / 2,子结点下标为 2i 和 2i + 1. 插入元素 ...

  9. pta 编程题10 Root of AVL Tree

    其它pta数据结构编程题请参见:pta 这道题考察平衡二叉查找树的插入. 为了保证二叉查找树的平衡,当一个结点的左右子树的高度差大于1时就要进行调整. 分为以下四种情况: 插入新节点后,以及旋转之后, ...

  10. pta 编程题8 Tree Traversals Again

    其它pta数据结构编程题请参见:pta 这次的作业考察的是树的遍历. 题目的输入通过栈的pop给出了树的中序遍历的顺序.根据push和pop的顺序构造树的方法为:定义一个变量father来确定父节点, ...

随机推荐

  1. 数据标记系列——图像分割 & PolygonRNN++(二)

    实践 1.export PATH=~/anaconda3/bin:$PATH 2.Anaconda3 中创建新环境 Conda create –name=labelme_polyrnn_pp pyth ...

  2. CodeForces 461B Appleman and T

    题目链接:http://codeforces.com/contest/461/problem/B 题目大意: 给定一课树,树上的节点有黑的也有白的,有这样一种分割树的方案,分割后每个子图只含有一个黑色 ...

  3. pci设备驱动相关

    pci 设备注册及查找: https://www.cnblogs.com/image-eye/archive/2012/02/15/2352912.html PFN https://nieyong.g ...

  4. Python——入门 | 常用python实现

    一.冒泡排序 list = [56,12,1,8,354,10,100,34,56,7,23,456,234,-58] def MP_paixu(): for i in range(len(list) ...

  5. Windows 10 Update

    services.msc Windows Update

  6. 三菱FX系列PLC教程

      标   题 日 期 点击 第一章:可编程控制器概论 2014-11-04 1401 1-0 课程概述 2014-11-05 192237 1-1 PLC的定义功能与特点 2014-11-05 16 ...

  7. Flask 构建微电影视频网站(四)

    后台管理 实现后台管理系统使用flask sqlalchemy结合mysql数据库进行增删改查操作.分页的使用.路由装饰器定义.模板中变量调用.登录会话机制.上传文件.flask wtforms表单使 ...

  8. rest framework 认证 权限 频率

    认证组件 发生位置 APIview 类种的 dispatch 方法执行到 initial 方法 进行 认证组件认证 源码位置 rest_framework.authentication  源码内部需要 ...

  9. [bilibili]弹幕屏蔽列表

    <filters> <item enabled="true">t=定单身</item> <item enabled="true& ...

  10. Gym - 101350F Monkeying Around(线段树+树状数组)

    When the monkey professor leaves his class for a short time, all the monkeys go bananas. N monkeys a ...