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

C语言if语句比较二维char数组元素 条件成立count不增加问题排查

C代码问题修复说明

核心错误点

  • 连续相等判断逻辑错误
    C语言中a == b == c的执行逻辑是先判断a == b得到布尔值(真为1,假为0),再将这个布尔值和c比较,完全不符合“三个值相等”的判断需求。需要修改为a == b && b == c的形式,对应第20、27、32、36行的判断条件全部需要调整。
  • 数组定义越界
    你定义的二维数组是char t[2][2],合法索引范围是行/列都为0~1,但代码中用到了索引0、1、2三个维度,会出现越界访问导致数据异常,需要修改为char t[3][3]。
  • 循环逻辑错误
    外层循环for (int i = 0; i < n; n++)中增量错误写为n++,会导致循环无法正常终止,需要改为i++;读取输入的循环for (int i = 1; i <= 3; i++),数组下标从0开始,需要改为for (int i = 0; i < 3; i++)。
  • 输入缓冲区残留换行符问题
    scanf("%d", &n)执行后,输入缓冲区会残留换行符,后续读取字符会把换行符误判为输入内容,需要在读取n后加getchar()消耗残留换行。
  • 下划线判断逻辑拦截了有效输入
    你的测试输入没有_字符,所以整个计数逻辑被外层的if (有下划线)判断拦截,根本不会执行计数逻辑,这也是count始终为0的直接原因,如果需求不需要下划线判断可以删除该层判断,或者调整判断逻辑适配你的业务场景。

修正后可运行代码

#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    getchar(); // 消耗读取n后残留的换行符
    for (int i = 0; i < n; i++) // 修正增量为i++
    {
        int count = 0;
        char t[3][3]; // 修正数组大小为3*3
        for (int i = 0; i < 3; i++) // 修正循环下标从0开始
        {
            scanf("%c %c %c", &t[i][0], &t[i][1], &t[i][2]);
            getchar(); // 消耗每行输入后的换行符
        }
        // 移除了无下划线就不执行计数的判断,若业务需要可自行调整
        for (int j = 0; j < 3; j++)
        {
            // 修正三值相等判断逻辑
            if (t[j][0] == t[j][1] && t[j][1] == t[j][2])
            {
                count++;
            }
        }
        for (int q = 0; q < 3; q++)
        {
            if (t[0][q] == t[1][q] && t[1][q] == t[2][q])
            {
                count++;
            }
        }
        if (t[0][0] == t[1][1] && t[1][1] == t[2][2])
        {
            count++;
        }
        else if (t[0][2] == t[1][1] && t[1][1] == t[2][0])
        {
            count++;
        }
        if (count == 0)
        {
            printf("%d", 2);
        }
        else if (count == 1)
        {
            printf("%d", 1);
        }
        else if (count > 1)
        {
            printf("%d", 3);
        }
    }
    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 02:15:06