`
阅读更多

许久不来,手都有些生疏了。

写个小程序热热手先。

 

假设有一个数字,可以很大,理论上可以无限大。要如何转成其对应的汉子大写?

 

就是那种支票本上、汇款单上的那种大写金额。

 

例如:

    数字:193817071803800182801088108

 

  大写:壹佰玖拾叁亿捌仟壹佰柒拾万柒仟壹佰捌拾亿叁仟捌佰万壹仟捌佰贰拾捌亿零壹佰零捌万捌仟壹佰零捌

 

代码:

#include <stdio.h>
#include <string.h>

static const char code[9][4]= {"壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};

void bit_4(char * s, int n){
    int f = 0;
    switch (n){
    case 4:
        if (s[0] != '0'){
            printf("%s仟", code[s[0] - 49]);
        }
        f = 1;
        s += 1;
    case 3:
        if (s[0] != '0'){
            printf("%s佰", code[s[0] - 49]);
        }
        else if (s[1] != '0') {
            printf("零");
        }
        f = 1;
        s += 1;
    case 2:
        if (s[0] != '0'){
            if (s[0] - 49 > 0 || f == 1){
                printf("%s拾", code[s[0] - 49]);
            }
            else{
                printf("拾");
            }
        }
        else if (s[1] != '0'){
            printf("零");
        }
        s += 1;
    case 1:
        if (s[0] != '0'){
            printf("%s", code[s[0] - 49]);
        }
    default:
        break;
    }
}

void bit_all (char * s, int n){
    if (s[0] == '0'){
        while (s[0] == '0') {
            s += 1; n -= 1;
        }
        if (n > 0){
            printf("零");
        }
    }
    if (n > 8){
        bit_all(s, n - 8);
        printf("亿");
        bit_all(s + n - 8, 8);
    }
    else if (n > 4){
        bit_all(s, n - 4);
        printf("万");
        bit_all(s + n - 4, 4);
    }
    else if (n > 0){
        bit_4(s, n);
    }
}

int main(int argc, char *argv[]){
    int n, i;
    char s[1000] = {'\0'};
    fgets(s, 1000, stdin);
    n = strlen(s);
    s[n - 1] = '\0';
    n = strlen(s);
    for (i = 0; i < n; i++){
        if (s[i] > '9' || s[i] < '0'){
            return -1;
        }
    }
    for (i = 0; i < n && s[i] == '0'; i += 1, n -= 1);
    bit_all(&s[i], n);
    printf("\n");
    return 0;
}

 

分享到:
评论

相关推荐

    会计记账小软件c#源码

    这是是一个用c#写的会计记账小程序源码,主要用户为会计。 系统操作简单方便,发布后能够在实际应用中实用,同时也是c#初学者很好的学习资料。 1.只需要记录账目金额和账目说明,系统自动对每月的资金借贷情况进行...

    【手机记账软件】多彩记账本小程序1.1.9

    在我们的生活中,有很多朋友需要有一个好的记账软件,所以现在小编就不说了,直接介绍下面的好软件——多彩记账本小程序!丰富多彩的簿记簿,用于收支的快速录入和统计,以及简单的日常记录,实现快速记账和财务分析...

    网络云记账小程序源码.zip

    网络云记账小程序功能介绍 支出、收入记录 账本共享,多账本 账本管理,邀请链接有时效限制,避免了长期在外被乱用 账本人员管理,可对同一个账本内的人员进行管理,包括移除,移交管理员 数据统计,图表形式展示...

    高端大气财务会计代理记账财税公司网站模板带手机版.txt

    高端大气财务会计代理记账财税公司网站模板带手机版.txt

    出纳付款会计账本样本(含现金日记账银行日记账总账明细账和分

    出纳付款会计账本样本(含现金日记账银行日记账总账明细账和分类明细账)(1)共8页.pdf.zip

    高端大气财务会计代理记账财税公司网站源码模板带手机版.txt

    高端大气财务会计代理记账财税公司网站源码模板带手机版.txt

    会计基础(学习财务ERP最基础的概念)

    第三节 汇总记账凭证账务处理程序 88 第四节 科目汇总表账务处理程序 90 第五节 日记总账账务处理程序 92 第六节 多栏式日记账账务处理程序 93 第七节 通用日记账账务处理程序 95 本章小结 96 第十章 会计报表 123...

    高端财务记账会计代理财税公司网站模板带WAP端.txt

    高端财务记账会计代理财税公司网站模板带WAP端.txt

    AccountBook:会计册,记账簿

    #Account BookAndroid端记账小程序

    PHP财务管理系统源码.zip

    PHP财务管理系统源码 PHP财务管理系统源码 PHP财务管理系统源码 PHP财务管理系统源码 PHP财务管理系统源码 PHP财务管理系统源码PHP财务管理系统源码 PHP财务管理系统源码 PHP财务管理系统源码PHP财务...

    财务小白上岗实训视频教程.txt

     一、结账的程序和内容  二、结账的方法 第二章 对账  一、账证相符  二、账账相符  三、账实相符 第三章 财务报表  一、资产负债表  二、利润表 第四章 财产清查  一、财产清查的种类  二、财产清查的方法...

    袋账宝U盘随身记账

    袋账宝界面简单,操作采用流程导航,会计科目和报表直接预制,单击一下按钮即可生成小企业报税所需报表,无需培训便可轻松上手使用。 轻松袋账,财源广进 袋账宝可以快速填制凭证,凭证制单后无需袋账便可直接...

    juxt-accounting:用 Clojure 和 Datomic 编写的复式记账软件

    要求一个单一的会计包来做所有事情,就是要求一个非常臃肿的复杂软件程序。 最好有一些涵盖基础知识但可以扩展以满足特定需求的小东西。 “只要有足够的眼球,所有的虫子都是浅薄的。” ——莱纳斯定律 如果只有...

    智点财务软件

    代理记账公司财务软件 会计/税务师事务所财务软件 担保行业专用财务软件 餐饮行业版财务软件 非盈利机构版财务软件 新农民专业合作社专用财务软件 交通部门、公路养护单位专用财务软件 房地产开发行业专用财务软件 ...

    《管家婆》卓越财务版单机和网络版 V5.0

    · 系统提供了取消记账、取消审核等功能,方便中小企业灵活使用。 2)账簿和报表 ·系统自动产生明细分类账、总账、多栏账,并可以在查看账簿时包含未记账凭证。 · 账簿中提供当前合计与当前累计功能,可在一月...

    Eqonomize:均衡! 个人会计(跨平台)

    是一种个人会计软件,专注于小型家庭的效率和易用性。 均衡! 提供完整的解决方案,通过两次录入进行簿记并支持计划的定期交易,安全性投资和预算编制。 它通过描述性表格和图表清晰地概述了过去和当前的交易以及...

    管家婆7.1a

    《管家婆》辉煌版充分考虑了中小企业规模较小、人手不足、缺乏专职会计、管理相对简单的实际情况,其简单、易用的傻瓜化操作特点恰到好处地解决了中小企业财务电算化的问题。 1、解决了计算机水平不高的问题: 在...

    Front-Accouting

    FrontAccounting ERP是面向中小企业的基于Web的开源会计软件。 它支持双重记账,提供低级日记账录入和用户友好的基于文档的界面,用于日常业务活动,并自动生成总帐过账。 这是一个具有全球活跃用户社区的多币种,多...

    库存管理系统课程设计(1).doc

    本库存管理系统就采用了单机版应用程序结构,将数据库和应用程序置于一台机器上 ,这样更加节约本钱,适合中小规模的超市使用。用户可以轻松将其拷贝到其他计算机 上,可以同时运行程序。 2关键技术与系统研究 关键...

Global site tag (gtag.js) - Google Analytics