7-83 币值转换 (20 分)
7-83 币值转换 (20 分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。
输入格式:
输入在一行中给出一个不超过9位的非负整数。
输出格式:
在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。
输入样例1:
813227345
结尾无空行
输出样例1:
iYbQdBcScWhQdBeSf
结尾无空行
输入样例2:
6900
输出样例2:
gQjB
思路:
1.用数组x[]存储对应的a-j
2.用数组y[]存储对应的S、B、Q、W、Y
3.逆序分离输入的数据,单个数字存入数组h[]中。
4.x[ h[i] ]输出对应数字的a-j
5.y[i]输出对应的S、B、Q、W、Y
6.考虑零的情况。如果a[i]==0那么只输出零,后面的y[i]则不需要输出。如果零在之前已经出现过,那么就不用输出零,一直往后读取,直到读到下一个非零的数字。
#include<stdio.h>
#include<string.h>
#define MAX 10
char x[10]={'a','b','c','d','e','f','g','h','i','j'};
char y[9]={'0','S','B','Q','W','S','B','Q','Y'};
int h[MAX];int main()
{memset( h,0,sizeof(h) );int i=0,n;scanf("%d",&n);if(n==0){printf("%c",x[0]); }else{do{h[i++]=n%10;n=n/10;}while(n);int j;int c=1;for( j=i-1; j>=0; j-- ){if(h[j]){printf("%c",x[h[j]]);if(y[j]!='0')printf("%c",y[j]);}else{if(j==4&&(h[4]||h[5]||h[6]||h[7]))printf("%c",y[j]);//判断后面有没有非零的数字 int k,f=0;for( k=j; k>=0; k-- ){if(h[k]){f=1;break;}}if(f&&c){printf("%c",x[0]);c=0; }else{continue;}}} }return 0;
}
7-83 币值转换 (20 分)相关推荐
- 7-168 币值转换 (20 分)
7-168 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为 ...
- 7-83 币值转换 (20分)
整了3个小时终于做出来了(我是菜鸡,大佬们别喷),初始的时候解题方向整错了:我把单位和数字放在一起输出了,导致以我现在能力无法正确表达出汉字的习惯.意识到可能需要重写代码,就看了下网上的答案,大体思路 ...
- 7-23 币值转换 (20分)
7-23 币值转换 (20分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简 ...
- 【Java】7-23 币值转换 (20 分)
7-23 币值转换 (20 分) 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了 ...
- 7-43 币值转换 (20分)_「篮球看吧」40岁了!生涯25年!还狂砍33分+联赛得分王,这他么是人吗...
35岁的詹姆斯仍处在巅峰,让无数人惊讶.40岁的时候詹皇会是什么样子?现在詹皇有了一个参照样本,那就是40岁的斯科拉.这位阿根廷球星在迈入四旬依然能称霸欧洲顶级联赛,目前在意大利甲级篮球联赛得分榜排名 ...
- java币值转换_-PAT-java-5-23 币值转换 (20分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...
- PTA 7-43 币值转换 (20 分)
题目 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a- ...
- 7-4 币值转换 (20分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...
- 币值转换 (20分)
输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序 ...
最新文章
- 2022-2028年中国汽车印制电路板(汽车PCB)产业深度调研及投资前景预测报告
- PHP基础封装简单的MysqliHelper类
- Opencv 去高光或镜面反射(illuminationChange)
- 20170710L07-09-03老男孩Linux运维实战培训-Sersync实时同步软件实战应用指南07
- 基于UDP客户端服务器的编程模型-linux网络编程
- 【leetcode】472. Concatenated Words
- “java程序打成jar包 如何处理第三方jar包”
- 2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)
- typescript可辨识联合
- java 第二天,Java复习第二天
- c++代码好玩_一行Python代码能干嘛?快来看看吧!有表白利器哦
- android porting usb audio,android - 在android中启动时找不到audio-hal-2-0 - 堆栈内存溢出...
- Android在WindowManagerService和ActivityManagerService中的Token
- Spring基础系列-AOP源码分析
- Linux.CommanlineTool.grep
- 最速下降法matlab全局最小值_最速下降法+Matlab代码
- 手把手教你搭建小程序
- python实现QQ和微信刷屏
- php网站mercury安装,水星路由器怎么安装?Mercury无线路由器安装示意图解
- 面经 | 腾讯/阿里/京东/头条/旷视等20+企业计算机视觉算法岗面经吐血整理