zoukankan      html  css  js  c++  java
  • 编程总结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>
    #include <math.h>
    int main()
    {
              int a,b,c,d,e,n,i,j,m,N,k;
              scanf("%d",&N);
              a=b=N;
              if(a==0){
                   printf("a");
              }
              for(i=0;a>0;i++){
                   a=a/10;
              }
              c=i;
              for(i;i>0;i--){
                   n=1;
                   e=0;
                   for(m=i-1;m>0;m--){
                        n=n*10;
                   }
                   a=b/n;                  /*从高位数到低位数的分离*/
                   b=b-a*n;
                   switch(a){
                   case 0: printf("a"); break;
                   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;
                   }
                   switch (i) {
                   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;
                   }
                   j=0;
                   for(d=b;d>0;j++){
                   d=d/10;
                   }
                   j=i-j-1;
                   if(c<9&&i>5&&j>2){
                        printf("W");
                   }
                   j=0;
                   for(d=b;d>0;j++){
                        d=d/10;
                   }
                   if(j!=0){
                   e=i-j-1;
                   }else{
                        i=0;
                   }
                   if(e>3&&i>4||e==2&&i<4){
                        printf("a");
                        i=j+1;
                   }else if(e==2&&i>1){
                        printf("a");
                        i=i-2; 
                   }else if(j<4&&c<9&&j!=0&&e!=1&&e!=0){
                        printf("a");
                        i=j+1;
                   }else if(e==1){
                        printf("a");
                        i=j+1;
                   }else{
                        i=j+1;
                        }
                   }
                   return 0;
              }

    2)设计思路

    第一步:运用字符串操作函数
    第二步:定义变量(整型与字符型)
    第三步:运用while语句判断出位数,再用switch语句选择每个数字对应的字符(详细讲解对应(1)中代码)
    第四步:打印结果

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

    问题:一开始不会做

    解决办法:自己慢慢研究发现不难

    4)运行结果截图

  • 相关阅读:
    011. Python中*args, **kwargs 和 pass 和self 解释
    010. windows10下安装kivy 1.9.1版
    013. MVC5过滤器
    制作ubuntu16.04 自动安装iso镜像 二
    Nexus安装
    使用docker-compose 大杀器来部署服务 上
    Docker-Compose入门
    nvidia-docker命令详解
    安装使用NVIDIA-Docker-- 可使用GPU的Docker容器
    frp实现内网穿透
  • 原文地址:https://www.cnblogs.com/zx666/p/10408720.html
Copyright © 2011-2022 走看看