You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言中如何构建嵌套数组?LCD格式数字显示代码问题求助

问题分析与修正代码

你的代码核心问题出在lcd数组的结构设计、字符串格式定义以及打印逻辑上,以下是修正后的完整代码,再逐一说明问题:

#include <stdio.h>

int main(){
    int a, b, c, d;
    printf("Enter 4 digit number:\n");
    scanf("%1d%1d%1d%1d", &a, &b, &c, &d);

    int digit[4] = {a, b, c, d};

    // 每个数字的LCD样式:4行,每行3个字符(不含换行)
    char zero[4][4] = {
        " _ ",
        "| |",
        "|_|",
        "   "
    };

    char one[4][4] = {
        "   ",
        "  |",
        "  |",
        "   "
    };

    char two[4][4] = {
        " _ ",
        " _|",
        "|_ ",
        "   "
    };

    char three[4][4] = {
        " _ ",
        " _|",
        " _|",
        "   "
    };

    char four[4][4] = {
        "   ",
        "|_|",
        "  |",
        "   "
    };

    char five[4][4] = {
        " _ ",
        "|_ ",
        " _|",
        "   "
    };

    char six[4][4] = {
        " _ ",
        "|_ ",
        "|_|",
        "   "
    };

    char seven[4][4] = {
        " _ ",
        "| |",
        "  |",
        "   "
    };

    char eight[4][4] = {
        " _ ",
        "|_|",
        "|_|",
        "   "
    };

    char nine[4][4] = {
        " _ ",
        "|_|",
        " _|",
        "   "
    };

    // lcd数组:索引对应数字0-9,每个元素指向对应数字的4行样式
    char (*lcd[10])[4] = {zero, one, two, three, four, five, six, seven, eight, nine};

    // 打印逻辑:按行打印,先打印所有数字的第1行,再第2行...
    for(int row = 0; row < 4; row++){
        for(int num_idx = 0; num_idx < 4; num_idx++){
            printf("%s ", lcd[digit[num_idx]][row]);
        }
        printf("\n");
    }

    return 0;
}

关键修改点说明

  1. 修正lcd数组结构
    你原来的lcd数组类型和层级完全错误,正确设计应为:lcd[数字]指向该数字的4行样式,所以类型定义为char (*lcd[10])[4]——这是一个包含10个元素的数组,每个元素是指向char[4]的指针,对应每个数字的一行字符。

  2. 统一字符串格式
    去掉了每个字符串里的\n,换行由打印逻辑统一控制,避免单个数字的行提前换行导致排版混乱。同时修正了one的错误字符串定义,确保每行是3个字符的有效样式。

  3. 调整打印循环逻辑
    原循环是先打印一个数字的所有4行再处理下一个,导致数字垂直排列。现在改为按行遍历,每行打印4个数字的对应行,实现LCD式的横向数字显示。

  4. 简化digit数组初始化
    直接用int digit[4] = {a, b, c, d};替代逐个赋值,代码更简洁。

内容的提问来源于stack exchange,提问作者Pinchy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:33:24