zoukankan      html  css  js  c++  java
  • 2018寒假作业5

     币值转换 (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>
    #include<string.h>
    int main(void)
    {
    char s[10];
    int l,len,i,j;
    gets(s);
    len=strlen(s);
    l=len;
    if(len==1&&s[0]=='0')
    printf("a");
    for(i=0;i<len;i++,l--)
    {
    char c=s[i];
    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(l==5)
    {
    if(s[i-1]!='0'||s[i-2]!='0'||s[i-3]!='0')
    printf("W");
    }
    else
    {
    for(i++,l--;i<len;i++,l--)
    {
    if(s[i]=='0')
    {
    if(l==5)
    {
    if(s[i-1]!='0'||s[i-2]!='0'||s[i-3]!='0')
    printf("W");
    }
    }
    else
    {
    printf("a");
    i--;
    l++;
    break;
    }
    }
    }
    }
    else
    {
    printf("%c",c);
    switch(l)
    {
    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;
    }

    错误截图

    遇到了很多问题,考虑特殊情况麻烦吧,写到最后,甚至觉得笔者是来搞笑的。解决方法:问了室友,我俩都不会,然后一起讨论了没学的知识,结果。。emmm,借鉴大佬。。。

    设计思路:要输入一个不超过9位数的非负整数,易知一种case,输入的数字位数为1位,数字0~9,对应输出a~j,

                      用拾,百,仟,万,亿拼音的首字母代表位数,分别为S,B,Q,W,Y。

    字母i,i从a~j,i++,位数是l--,考虑特殊情况

    运行结果截图

  • 相关阅读:
    tyvj 1031 热浪 最短路
    【bzoj2005】 [Noi2010]能量采集 数学结论(gcd)
    hdu 1394 Minimum Inversion Number 逆序数/树状数组
    HDU 1698 just a hook 线段树,区间定值,求和
    ZeptoLab Code Rush 2015 C. Om Nom and Candies 暴力
    ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
    ZeptoLab Code Rush 2015 A. King of Thieves 暴力
    hdoj 5199 Gunner map
    hdoj 5198 Strange Class 水题
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
  • 原文地址:https://www.cnblogs.com/Markming/p/10410901.html
Copyright © 2011-2022 走看看