2301_81283858 2023-11-21 16:58 采纳率: 0%
浏览 5

用C语言编程你都觉得好

2 使用二维数组编程解决实际问题
4-3 1)实验课堂任务(课内完成)
编程要求
编程实现阿拉伯数字转中文大写数字:
①用户输入[10000,999999999]之间的整数(不在范围内的,重新输入);② 输出与该整数各位数字一一对应的中文大写数字形式。
必须借助字符数组实现阿拉伯数字到中文大写数字的转换;
实现效果应尽可能与下图相同。
输入整数[10000,999999999]:6666
输入整数[10000,999999999]:123456789其中文写作:壹贰叁肆伍陆柒捌玖
数组程序设计实践
C语言程序设计

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-21 21:40
    关注

    【以下回答由 GPT 生成】

    #include <stdio.h>
    
    void convertToChinese(int n) {
        char *ChineseNumber[] = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};
        char *unit[] = {"", "十", "百", "千", "万", "亿"};
    
        char result[20]; // 限定最大长度为9位阿拉伯数字,加上'亿'和终止符
    
        int i = 0, j = 0;
        int flag = 0, zero = 0;
    
        if (n < 10000 || n > 999999999) {
            printf("输入的整数不在范围内,请重新输入\n");
            return;
        }
    
        if (n == 0) {
            printf("零\n");
            return;
        }
    
        // 遍历每一位数字
        while (n > 0) {
            if (n % 10 == 0) {
                if (zero == 0) {
                    // 如果当前位是0,且上一位不是0,则输出“零”
                    result[i++] = *ChineseNumber[0];
                    zero = 1;
                }
            }
            else {
                // 如果当前位不是0,直接将中文大写数字存入result数组
                result[i] = *ChineseNumber[n % 10];
                zero = 0;
                i++;
                // 每个数字后面添加单位
                result[i] = *unit[j % 5];
                i++;
            }
            j++; // 位数加1
            n = n / 10; // 将数字右移一位
        }
        // 输出转换后的结果
        for (i = i - 1; i >= 0; i--)
            printf("%c", result[i]);
        printf("\n");
    }
    
    int main() {
        int num;
        printf("输入整数[10000, 999999999]: ");
        scanf("%d", &num);
        convertToChinese(num);
        return 0;
    }
    

    这是使用C语言编程实现阿拉伯数字转中文大写数字的功能的代码。在这个程序中,我使用了字符数组来存储中文大写数字和单位,并使用while循环遍历每一位数字进行转换。同时,将每个数字后面添加单位,最终输出转换后的中文大写数字结果。希望对你有所帮助。



    【相关推荐】



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

报告相同问题?

问题事件

  • 创建了问题 11月21日