• 寒假作业2:币值转换


    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
    

    1.实验代码:

    #include<stdio.h>
    int main()
    {
        int money,i,j;      
        char figure[10]={'a','b','c','d','e','f','g','h','i','j'};//定义字符,输入a-j
        int space[10]={};
        scanf("%d",&money);
        if(money==0)   //判断为0的情况
        printf("a");
        else
        {
            for(i=1;money>0;i++)
        {
             space[i]=money%10;  //求各个位数上的数字
             money=money/10;
            }
            i=i-1;     
            for(j=i;j>0;j--)   
           {
             if(space[j]==0)
             {
              if(space[j-1]!=0)
              printf("a");
             } 
             else
             printf("%c",figure[space[j]]);     //以字母来输出各个位数上的数字                       
             if(j==5&&(space[8]!=0||space[7]!=0||space[6]!=0||space[5]!=0))//超过万位且不为0
             printf("W");
             if(space[j]!=0)
             {
              if(j==2||j==6)  //在各个位数上添加单位
              printf("S");
              if(j==3||j==7)
              printf("B");
              if(j==4||j==8)
              printf("Q");
              if(j==9)
              printf("Y");
             }
           }
        }
        
        return 0;
     } 
    

    2.设计思路:

    流程图:

    首先,将需要的数字每一个位的数都分离出来并且储存至数组中,

    然后写一个数组,其中每一个元素与字母位置对应,

    然后把对应的数字转化为对应的字母。

    由于0在里面的情况比较特殊,所以单独考虑什么时候该打印0。

    在实现了所有数字的转化后,开始考虑对应的单位应该在什么时候加入。

    通过循环语句一个一个把数组中的字母打出来。
    注意事项:
    本题在101这个数字的输出值尤其要考究,对于10000的输出,以及再未达到万位的数字输出也是考量的目标,且需要加入对数位的判断

    3.本题调试过程碰到问题及解决办法:

    问题1:开始忘记考虑money等于0的情况
    解决办法:添加 if(money==0)
    问题2:在i多加了一次后没有减一
    解决办法:添加i=i-1

    4.实验结果截图:

  • 相关阅读:
    cantor 数表
    利用form的“acceptcharset”在不同编码的页面间提交表单
    <li>标签,在文字超出宽度时引起混乱的解决办法
    java中 Integer.getInteger(String str)的疑惑
    SQL语句集锦
    禁用鼠标右键
    ROW_NUMBER() OVER函数的基本用法
    listview
    decodeResource
    LinkedList
  • 原文地址:https://www.cnblogs.com/lyx1314/p/10325117.html
Copyright © 2020-2023  润新知