CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

C语言

楼主cc945(可人)2006-03-02 16:44:41 在 C/C++ / C语言 提问

用C语言,  
  金额小写不带格式转换为大写输出算法  
  输入一个数字字符串,可以使整数,可以使小数。输入范围0-   999   999   999   999.99,输入为对应汉字读法的格式如果没有角分,输出要添加元整  
  输出没有分位,输出要加角整  
  阿拉伯数字1,2,3,4,5,6,7,8,9,0对应的汉字为壹贰叁肆....拾  
  如输入     100           输出   壹佰元整  
              563923.56           伍拾陆万叁千陆佰贰拾叁元伍角陆份 问题点数:20、回复次数:8Top

1 楼terryjwf(开大奔的帅哥)回复于 2006-03-02 17:20:16 得分 0

用查表法。Top

2 楼fiftymetre(50米深蓝)回复于 2006-03-02 17:34:04 得分 0

http://bbs.chinaunix.net/archiver/?tid-446866.html  
   
   
  找来的,看看吧Top

3 楼fiftymetre(50米深蓝)回复于 2006-03-02 17:34:40 得分 0

查表法,好像也不太好做的吧。有些逻辑的地方,怎么控制啊。?Top

4 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-02 20:40:59 得分 0

数组,   一个下标对应一个汉字(宽字符),  
   
  把输入的数据分割,  
  然后输出对应汉字   !!  
   
  小数点处理下,  
  之前输出   单位是“元”,  
  后面有其他的再继续输出,  
  就是单位要更换一下...  
  没有的话,   输出   “整”   ...Top

5 楼tudoushishei(土豆)回复于 2006-03-03 15:32:10 得分 0

有没有高效的算法?我想到的也类似于楼上的。Top

6 楼jinjiajie(leorio)回复于 2006-03-03 15:39:31 得分 0

查表?0-9一个表,每位的读法一个表如拾佰千万===.....然后一个个加上去?想是那么想,写起来可能碰到其他问题,具体问题具体解决吧,嘿嘿Top

7 楼bombwang(王)回复于 2006-03-03 19:29:05 得分 0

数组怎么样啊Top

8 楼cunsh(村少)回复于 2006-03-03 20:27:21 得分 0

//用汉语读一个整数(如"1024")  
   
  #include<iostream>  
  #include<string>  
  #include<sstream>  
  #include<fstream>  
  #include<algorithm>  
  using   namespace   std;  
   
  string   a[]   =   {   "零",   "一"   ,   "二",   "三",   "四",   "五",   "六",   "七",   "八",   "九"   };  
  string   b[]   =   {   ""   ,   "十"   ,   "百"   ,   "千"   };  
  string   c[]   =   {   ""   ,   "万"   ,   "亿"   ,   "万亿"   };  
   
  void   du(const   char   *   temp);  
  int   main()  
  {  
     
    char   x[15];  
    cin   >>   x;  
     
    du(x);   //读一个整数的字符串表示  
    return   0;  
  }  
   
  void   du(const   char   *   temp)   //读一个整数的字符串表示  
  {  
     
    int   len   =   strlen(temp);  
    int   ling   =   0;                   //   读0标记.  
    int   biaoji   =   0;                       //4位都是0   .则biaoji   ==   0;  
    stringstream   out;           //先输出到字符流;  
     
    for   (int   i=0;   i<len;   ++i)  
    {  
      if   (temp[i]   !=   '0')   {  
        if   (ling)   {  
          out   <<   a[0];  
          ling   =   0;  
           
        }  
         
        biaoji   =   1;  
        out   <<   a[   temp[i]   -   '0'];  
        out   <<   b[   (len   -   i   -   1)   %   4   ];  
      }  
      else   {  
        ling   =   1;  
      }  
       
       
      if   (   (len   -   i)   %   4   ==   1   )   {         //输出"亿"     "万"   等  
        if   (biaoji)   out   <<   c[   (len-i)   /   4   ]   ;  
        ling   =   0;  
        biaoji   =   0;  
      }        
    }  
     
    cout   <<   out.rdbuf();      
     
  }  
  Top

相关问题

  • 学C语言。。。
  • C语言书!
  • c语言问题:
  • 妙论C语言
  • c语言一疑
  • 关于C语言
  • c语言问题!!!!!!!!!
  • c语言问题
  • C语言问题
  • c语言问题?

关键词

  • 汉字
  • 输出
  • 字符串
  • 输入
  • du
  • 读一个整数
  • 查表
  • temp
  • 没有
  • include

得分解答快速导航

  • 帖主:cc945

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo