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

C语言打印4*4B/A字符图案时代码输出结果不符合预期问题

C语言打印4×4边框字符图案的代码修正

目标输出

需要实现打印的4×4规格图案如下:

BBBB
BAAB
BAAB
BBBB

原有代码逻辑错误

原代码的判断条件存在覆盖不全的问题:

  • 原判断逻辑(i==1&&j>=i)||(i==4&&j<=i)仅能触发第一行全打印B、第四行全打印B的逻辑,第2、3行的所有位置都会进入else分支打印A,完全没有处理第2、3行首尾位置需要打印B的规则,因此输出和预期不符。

正确逻辑与修正代码

图案的规则非常明确:所有边界位置打印B,非边界的内部位置打印A。只要满足以下任意一个条件即为边界位置,打印B:

  • 当前行为第1行或第4行
  • 当前列为第1列或第4列
    其余位置统一打印A即可。

修正后的可运行代码:

#include <stdio.h>

int main() {
    int i, j;
    for(i = 1; i <= 4; i++) {
        for(j = 1; j <= 4; j++) {
            if (i == 1 || i == 4 || j == 1 || j == 4) {
                printf("%c", 'B');
            } else {
                printf("%c", 'A');
            }        
        }
        printf("\n");            
    }        
    return 0;
}

编译运行上述代码,即可得到符合预期的输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:18:30