我想知道为什么我的程序输出不了数字的中文形式

img

img

img


我刚接触c语言不熟练,这是让我将数字转化为中文形式,但是我输入一个数字之后就得不到中文形式的答案,这是哪里有错呢

完整的代码是什么?mask是干嘛的。
你贴出看看。
另外,你这个输出的是拼音啊。

完整代码

供参考:

#include <stdio.h>
int main()
{
    char* num[10] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
    char c[100] = { 0 };
    int  i, flg, k;
    scanf("%s", c);
    for (i = 0, k = 0, flg = 1; c[i]; i++) { 
        if (i == 0 && c[i] == '-')
            c[k++] = c[i];
        else if (c[i] == '0' && flg)
            continue;
        else{
            flg = 0;
            c[k++] = c[i];
        }
    }
    if (k == 1 && c[0] == '-')
        c[0] = '0';
    else if (k < 1) 
        c[k++] = '0';
    c[k] = '\0';
    for (i = 0; c[i] != '\0'; i++)
        printf(i == 0 && c[i] == '-' ? "fu" : i == 0 ? "%s" : " %s", num[c[i] - '0']);
    return 0;
}

【以下回答由 GPT 生成】

你无法得到数字的中文形式是因为C语言本身并没有直接支持将数字转化为中文形式的功能。不过,你可以通过自己编写函数来实现这个功能。下面是一个示例的代码,可以将数字转化为中文形式:

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

void printChineseNumber(int number)
{
    char chineseNumber[10][6] = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
    char chineseUnit[4][4] = {"", "十", "百", "千"};
    char chineseBigUnit[5][4] = {"", "万", "亿", "兆", "京"};
    char result[100] = "";
    char temp[10];

    if (number == 0) {
        printf("零");
        return;
    }

    int index = 0;
    while (number > 0) {
        int cur = number % 10;
        if (cur != 0) {
            sprintf(temp, "%s%s%s", chineseNumber[cur], chineseUnit[index % 4], result);
            strcpy(result, temp);
        }
        if (index % 4 == 0 && index / 4 > 0) {
            sprintf(temp, "%s%s", chineseBigUnit[index / 4], result);
            strcpy(result, temp);
        }
        number /= 10;
        index++;
    }

    printf("%s", result);
}

int main()
{
    int number;
    printf("请输入一个数字:");
    scanf("%d", &number);
    printf("中文形式:");
    printChineseNumber(number);
    return 0;
}

这个程序通过将数字进行取余运算和除法运算来逐位获取每个数字,并将其转化为对应的中文形式。需要注意的是,这个示例只支持1万亿以内的数字。

希望这个示例能帮助到你!如果你还有其他问题,可以随时提出。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^