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

C语言printf函数打印数组元素无输出且程序卡顿问题求助

问题分析与修复方案

核心错误点

  • 变量名不匹配:定义的数组是cube_pattern,但打印时误用了未声明的cube_state,属于标识符错误。
  • 格式符与参数类型不匹配:想要打印单个字符,却使用了字符串格式符%s。cube_pattern[0]是char类型,%s会从传入的地址开始读取字节直到遇到\0终止符,但你的数组刚好存满54个字符、无终止符,导致程序越界读取内存,找不到终止符时就会卡顿,触发未定义行为。
  • 语法错误:char cube_pattern[54] = SOLVED_CUBE末尾缺少分号,会导致编译失败。
  • 非标准main函数:C语言标准中main函数应返回int类型,而非void。

修复后的代码

#include <stdio.h>

#define SOLVED_CUBE "UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB"

// 补充分号,数组长度设为55以预留'\0'位置(方便后续打印完整字符串)
char cube_pattern[55] = SOLVED_CUBE;

void print_pattern() {
    // 打印单个字符使用%c格式符,修正变量名
    printf("%c", cube_pattern[0]);
    fflush(stdout); // 保留刷新操作,确保输出立即显示
}

// 标准main函数格式
int main() {
    print_pattern();
    return 0;
}

额外说明

如果需要打印完整的魔方状态字符串,直接使用printf("%s", cube_pattern)即可,此时数组末尾的\0会确保字符串正常终止,不会出现越界问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:50:22