标题:数字转中文,输入数字超过10万,结果就会出错,大神们可以帮忙看看吗?
取消只看楼主
danielxiang
Rank: 2
等 级:论坛游民
帖 子:8
专家分:22
注 册:2017-7-27
结帖率:100%
已结贴  问题点数:20 回复次数:2 
数字转中文,输入数字超过10万,结果就会出错,大神们可以帮忙看看吗?
#include<stdio.h>
#include <stdlib.h>
int main()
{
    //输入一个数字,输出这个数字相应的中文表示
    double money;//表示输入的数字
    int m = 0; //修改后的数字
    char ch[10][4] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
    int n = 0;  //数字的位数
    int fei[20] = {0}; //保存每一个数字
    int i = 0;//循环变量
    char wei[20][4] = {"分", "角", "元", "拾", "佰", "仟", "萬", "拾萬", "佰萬", "仟萬", "億", "拾億", "佰億", "仟億", "萬億"};
    do
    {
        printf("请输入数字:");
        scanf("%lf",&money);
        if(money < 0)
        {
            printf("输入有误!\n");
        }
    }while(money < 0);
    m = (int)((money + 0.005)*100);
    //printf("m是%d\n",m);  //测试保留两位数字的输出
    while(m != 0)
    {
        fei[i] = m % 10;
        m = m / 10;
        i++;
        n++;
    }
    printf("相应的中文数字是:\n");
    for(i = 0; i < n-2; i++)
    {
        if((fei[n-i-1] != 0) || (fei[n-i] != 0))
        {
            printf("%s",ch[fei[n-1-i]]);
            if(fei[n-i-1] != 0)
                printf("%s",wei[n-i-1]);
        }
    }
    if(fei[2] == 0)
        printf("%c%c元",8,8);
    if(fei[0] == 0 && fei[1] == 0)
    {
        printf("整");
    }
    else
    {
        for(i = 0; i < 2; i++)
        {
                printf("%s",ch[fei[2-1-i]]);
                if(fei[2-i-1] != 0)
                {
                    printf("%s",wei[2-i-1]);
                }

        }
        if(fei[0] == 0)
            printf("%c ",8);
    }



    printf("\n");
    return 0;

}

[此贴子已经被作者于2017-7-27 11:17编辑过]

搜索更多相关主题的帖子: 数字 输入 int money printf 
2017-07-27 10:07
danielxiang
Rank: 2
等 级:论坛游民
帖 子:8
专家分:22
注 册:2017-7-27
得分:0 
回复 3楼 GBH1
之前删除掉了  复制过来忘了加上了  现在加上了
2017-07-27 11:17
danielxiang
Rank: 2
等 级:论坛游民
帖 子:8
专家分:22
注 册:2017-7-27
得分:0 
回复 2楼 GBH1
嗯嗯  谢谢  修改了一下  确实好了
2017-07-27 11:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479642-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.457264 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved