`
阅读更多

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

写个小程序热热手先。

 

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

 

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

 

例如:

    数字: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

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

    记帐小程序源码,方便实用

    - **收支分类**:记账小程序通常会提供多种预设的收支类别,如餐饮、交通、购物等,用户可自定义类别,便于分类记录和统计。 - **输入与编辑**:用户应能方便地输入交易详情,包括金额、日期、类别、备注等,并能...

    简单财务会计记账系统

    【简单财务会计记账系统】是一款基于C#编程语言开发的财务管理软件,旨在提供便捷的会计记账功能,包括会计凭证的录入、查询、修改以及明细查询等核心操作。这款系统设计简洁,易于上手,适合小型企业和个人进行日常...

    财务会计与记账凭证核算管理知识分析程序.pptx

    常见的会计核算程序有记账凭证核算程序、科目汇总表核算程序、汇总记账凭证核算程序、日记总账核算程序和多栏式日记账核算程序。 记账凭证会计核算程序是最基础的形式,所有经济业务的原始凭证或汇总表都会转化为...

    基于spring,mybatis的JavaSwing记账小程序

    在记账小程序中,MyBatis可能用于处理与会计记录相关的数据存储和检索,比如用户的收支明细、账户余额等。 【Java Swing】是Java的标准GUI库,用于构建桌面应用界面。在这个记账程序中,Swing组件,如JFrame、...

    基础会计财务处理程序PPT课件.pptx

    记账凭证账务处理程序是最基础的会计处理方式,它直接根据记账凭证登记总账。这种程序的特点是结构简单,但可能增加登记总账的工作量,适用于小型企业或经济业务较少的单位。其核算步骤包括:编制记账凭证、登记...

    [精选]会计核算组织程序(ppt 43页).pptx

    会计核算组织程序是企业在进行会计工作时所遵循的一套系统性流程,它涵盖了会计主体采用的会计凭证、账簿和报表的类型、格式以及相应的记账程序。这种程序旨在规范会计核算工作,确保其质量和效率,同时降低核算成本...

    会计基础-记账凭证账务处理程序单元练习.pdf

    《会计基础-记账凭证账务处理程序单元练习》涵盖了会计工作中常见的账务处理程序及其优缺点,主要包括记账凭证账务处理程序、汇总记账凭证账务处理程序和科目汇总表账务处理程序。 1. 记账凭证账务处理程序:这种...

    汇总记账凭证会计处理程序PPT课件.pptx

    汇总记账凭证会计处理程序是一种常见的财务会计工作流程,它主要应用于中小企业或组织,以简化会计凭证的处理,提高工作效率。这种程序适用于交易量不是特别庞大,但仍需规范化的会计管理环境。 首先,汇总记账凭证...

    记账凭证会计核算程序的优缺点和适用范围PPT学习教案.pptx

    本资料主要探讨了两种常见的会计核算程序——记账凭证会计核算程序和科目汇总表会计核算程序。 首先,会计核算程序的意义在于,它为企业提供了一套有序的会计操作流程,确保了会计信息的准确性和完整性。程序的选择...

    2017会计从业资格证《会计基础》考点:记账凭证账务处理程序.doc

    记账凭证账务处理程序是会计工作中的一种基本账务处理方式,主要针对的是规模较小、业务量较少的单位。这种程序的特点在于其简洁明了,易于理解和操作,但同时也存在一定的工作量大、效率较低的问题。 一、记账凭证...

    [精选]会计核算组织程序与会计工作组织.pptx

    会计核算组织程序,简而言之,就是一种技术性的组织方式,它将会计凭证、账簿、报表、记账程序和记账方法结合起来,旨在减少冗余步骤,确保会计流程的有序性和会计信息的及时性。 会计核算组织程序的作用在于优化...

    《基础会计》之会计核算组织程序.doc

    根据实际业务需求和企业规模,常见的会计核算组织程序有四种:记账凭证核算组织程序、科目汇总表核算组织程序、汇总记账凭证核算组织程序和日记总账核算组织程序。 记账凭证核算组织程序是最基础的形式,它要求每笔...

    基础会计第十章-会计核算程序.ppt

    本讲主要介绍了五种常见的会计核算程序:记账凭证核算程序、汇总记账凭证核算程序、科目汇总表核算程序、多栏式日记账核算程序和日记总账核算程序。 记账凭证核算程序是最基础的形式,它直接根据记账凭证逐笔登记总...

    会计核算组织程序.pptx

    首先,会计核算组织程序的种类主要有五种:记账凭证核算组织程序、科目汇总表核算组织程序、汇总记账凭证核算组织程序、多栏式日记账核算组织程序和日记总账核算组织程序。每一种都有其特定的适用条件和优缺点。 ...

    会计核算程序PPT课件.pptx

    会计核算程序是企业财务管理的核心部分,它涉及到会计凭证、会计账簿和会计报表的整合方式。在会计领域,有多种不同的账务处理程序,每种都有其特定的特点、适用范围以及优缺点。以下是对这些主要会计核算程序的详细...

Global site tag (gtag.js) - Google Analytics