zoukankan      html  css  js  c++  java
  • 币值转换

    币值转换 (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;
              }
    

    设计思路

    第一步:定义变量,用for语句进行判断
    第二步:使用嵌套语句进行运算
    第三步:用switch语句进行转换
    第四步:用if-else语句判断输出

    本题遇到的问题及解决方法

    问题:在for语句中定义 i 错误
    解决方法:定义变量加上整型变量 i

    运行结果截图

  • 相关阅读:
    JAVA中变量的初始化
    取得301转向后的地址
    history for html5
    php traits 介绍
    android 笔记
    C posix 笔记
    笔记
    C 常用库
    cocos2dx:利用CCSpriteBatchNode优化渲染效率
    C实现将指定秒数转化为时:分:秒格式
  • 原文地址:https://www.cnblogs.com/zzwwll/p/10407635.html
Copyright © 2011-2022 走看看