Annavl 2022-09-29 22:09 采纳率: 33.3%
浏览 537

for循环明明初始化了,为什么还报错未定义标识符

问题遇到的现象和发生背景

for循环里明明已经初始化了j可是下方还是报错,显示未定义j

用代码块功能插入代码,请勿粘贴截图

int fun(int a[], int len1, int b[], int len2)
{

for (int i = 0;i<len1;i++)
{
    //int j = 0;
    for (int j = 0;j < len2;j++)
        if (a[i] < b[j])
            break;
        if (j >= len2)
        {
            b[j] = a[i];
            len2++;
        }
        else {
            int k = len2;
            for (int k = len2;k >j;k--)
                b[k] = b[k - 1];
            b[k] = a[i];
            len2++;
        }
}
return len2;//len1改成len2

}

运行结果及报错内容

未定义标识符"j"

我的解答思路和尝试过的方法

加上int j=0;

我想要达到的结果

了解报错原因

  • 写回答

4条回答 默认 最新

  • 快乐鹦鹉 2022-09-29 22:13
    关注

    for (int j = 0;j < len2;j++)
    if (a[i] < b[j])
    break;
    因为j是在for语句中定义的,其作用域只是在for的代码块内,也就是上述3行内。所以后面的j是找不到定义的。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月29日