• 币值转换


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

    输入格式:
    输入在一行中给出一个不超过9位的非负整数。

    输出格式:
    在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。

    输入样例1:
    813227345
    输出样例1:
    iYbQdBcScWhQdBeSf
    输入样例2:
    6900
    输出样例2:
    gQjB
    实验代码:

    include<stdio.h>

    int main(void)
    {
    int c,a,b,n,j,N;
    scanf("%d",&N);
    a=b=N;
    if(a0){
    printf("a");
    }
    for(i=0;i<a;i++,c--)
    {
    switch(c)
    {
    case '0':c='a';break;
    case '1':c='b';break;
    case '2':c='c';break;
    case '3':c='d';break;
    case '4':c='e';break;
    case '5':c='f';break;
    case '6':c='g';break;
    case '7':c='h';break;
    case '8':c='i';break;
    case '9':c='j';break;
    default:break;
    }
    if(c
    'a')
    {
    if(b==5)
    printf("W");

      switch(b)
      {
        case 9:printf("Y");break;
        case 8:printf("Q");break;
        case 7:printf("B");break;
        case 6:printf("S");break;
        case 5:printf("W");break;
        case 4:printf("Q");break;
        case 3:printf("B");break;
        case 2:printf("S");break;
        default:break;
      }
    }
    

    }
    return 0;
    }

    做这个题目实在是没有什么头绪,只知道是字符的输出转换是用switch进行,但对特殊的情况的确定不知道该怎么确定。这个代码是自己写的错误的代码,在PTA上压根就没过。
    本来以为开学后老师会讲但也没有讲。所以也只有去借鉴一下别人的代码了。但也没交PTA了,所以就不粘贴别人的代码了,就大致将一下自己理解的思路。
    1.输出的顺序呢字母在前单位在后。
    2.用switch语句进行转化和输出。
    3.要注意一些存在的特殊条件,如万位数字和单位的关系。
    4.另外他是用数组进行处理所以我也不太懂。大致用他的代码做了一份思维简图。(代码出处https://blog.csdn.net/moyulinggdi)
    流程图如下:

  • 相关阅读:
    Android VersionedGestureDetector手势事件
    Android drawBitmapMesh扭曲图像
    如何利用SVN合并代码
    Android 微信分享图文资料
    Android google map 两点之间的距离
    Android 监听ContentProvider的数据改变
    Android 自动朗读(TTS)
    Android ContentProvider的实现
    解决xcode升级之后安装的插件失效
    Android Studio 更换国内源下载依赖库
  • 原文地址:https://www.cnblogs.com/fengmixinluo/p/10395985.html
Copyright © 2020-2023  润新知