• 编程总结2


    题目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>
    #include<math.h>
    int aa(int a);
    int bb(int b);
    int main()
    {
        int a,b,c=1,d[10]={1,1,1,1,1,1,1,1,1,1},e,f;
        scanf("%d",&a);
            
        for(b=0;a/c>=10;b++)
            {
                c=pow(10,b);
            } 
            f=b;
            
        for(b;b>0;b--)
        {
            d[b]=a/pow(10,b-1);
            e=pow(10,b-1);
            c=a%e;
            a=c;
        }
       
        if(f==0)    printf("a");
        else if(f%100000000==0) {   
                        bb(f/100000000);
                    printf("Y");
                }
        else
            for(f;f>0;f--)
            {
                if(d[f]!=0) 
                    if(d[f+1]==0)
                    {
                        printf("a");
                        bb(d[f]);
                        aa(f);
                    }           
                    else
                    {   
                        bb(d[f]);
                        aa(f);
                    }
                else if(f==5)   printf("W");
            }       
    }
    
    int aa(int a)
    {
        switch(a)
            {
                case 1: printf("");break;
                case 2: printf("S");break;
                case 3: printf("B");break;
                case 4: printf("Q");break;
                case 5: printf("W");break;
                case 6: printf("S");break;
                case 7: printf("B");break;
                case 8: printf("Q");break;
                case 9: printf("Y");break;
         }
    }
    
    int bb(int b)
    {
        switch(b)
                        {
                            case 1:printf("b");break;
                            case 2:printf("c");break;
                            case 3:printf("d");break;
                            case 4:printf("e");break;
                            case 5:printf("f");break;
                            case 6:printf("g");break;
                            case 7:printf("h");break;
                            case 8:printf("i");break;
                            case 9:printf("j");break;
                        }
    }

      2)设计思路

    这道题使用了比较呆板的办法,参考了一些代码

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

    也是一道难题,而且复杂,想不太明白

      4)运行结果截图

  • 相关阅读:
    The kernel’s command-line parameters(1)
    Linux kernel release 5.x <http://kernel.org/>(1)
    2020 LInux Kernel History Report(2)
    2020 LInux Kernel History Report
    Android下拉刷新,上拉加载
    多条目加载和适配器
    PAT:1071. Speech Patterns (25) AC
    PAT:1054. The Dominant Color (20) AC(map法)
    PAT:1054. The Dominant Color (20) AC(抓住最多的特点,处理不同和相同的情况,留下剩余的答案)
    PAT:1060. Are They Equal (25) AC
  • 原文地址:https://www.cnblogs.com/twk0909/p/10407487.html
Copyright © 2020-2023  润新知