• 寒假作业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

    一.代码.

    #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;
                   }
    

    二.设计思路。

    1.首先应该去判断是不是一个零。
    2.再去判断他的位数。
    3.从高到底的判断其数字大小。
    4.且同时判断其单位。
    5.其中单位的判断在下面的语句中。
    6.要去每一个的的去比较。

    三.问题与方法。

    问题:不知道怎么去判断其单位的输出。
    方法:在网上查找资料,借鉴别人的代码。

    四.运行编辑图。

    五,流程图

  • 相关阅读:
    iPhone页面的常用调试方法
    前端代码相关规范
    使用BEM命名规范来组织CSS代码
    安卓微信页面的调试
    前端调试的那些手段
    Webpack打包构建太慢了?试试几个方法
    [前端] 记录工作中遇到的各种问题(Bug,总结,记录)
    jqPlot图表插件学习之饼状图和环状图
    jqPlot图表插件学习之阴阳烛图
    jqPlot图表插件学习之数据节点高亮和光标提示
  • 原文地址:https://www.cnblogs.com/chenanping/p/10359869.html
Copyright © 2020-2023  润新知