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

C语言二维字符数组填充程序无输出,请求技术排查修复

问题排查与修复

核心问题:死循环导致程序无响应

你的程序卡在第一个嵌套的do-while循环里,完全没机会执行到后续的输出逻辑。问题出在j的更新语句上:

j=(i+1)%26;

每次循环j都会被固定设置为(i+1)%26,永远无法回到初始值i,导致while(j!=i)的条件永远成立,循环无限执行。

修复方案

把j的更新逻辑改成基于当前值递增,也就是:

j=(j+1)%26;

这样每次循环j都会往后移动一位,经过26次循环后会回到初始的i,从而正常退出循环。

修正后的完整代码

#include <stdio.h>

int main()
{
    int i,j;
    char arr1[26][26]={{""}};
    char arr[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
    
    for(int i=0;i<26;i++)
    {    
        int j=i;
        do
        {
            arr1[i][j]=arr[j];
            j=(j+1)%26; // 此处为修正点
        }
        while(j!=i);
    }
    
    for(int i=0;i<26;i++)
    {
        printf("{ ");
        for(int j=0;j<26;j++)
        {
            printf("%c, ",arr1[i][j]);
        }
        printf(" }\n");
    }
    return 0;
}

补充说明

修正后,二维数组arr1的第i行会从arr[i]开始,依次填充arr[i], arr[i+1], ..., arr[25], arr[0], arr[1], ..., arr[i-1],符合你“遍历一维数组填充二维数组”的需求,程序也能正常输出结果。

内容的提问来源于stack exchange,提问作者Rakesh Prasanna R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:45:56