-4

有人可以解释为什么这个算法

for (i = 0;i<5;i++)
{
    for(j = 0;j<5;j++)
    {
        b[j] = a[i];
        break;
    }
}

给出奇怪的输出,而这

for (i = 0;i<5;i++)
{
    b[i] = a[i];
}

完美运行?问题是编写一个程序将一个数组的元素复制到另一个数组中。

4

3 回答 3

2

你的第一个代码是错误的。它分配b[0] = a[0],然后b[0] = a[1]等等。你break阻止循环去j = 1

于 2013-04-14T12:24:13.230 回答
1

这里:

for (i = 0;i<5;i++)
{
    for(j = 0;j<5;j++)
    {
        b[j] = a[i];
        break;
    }
}

b[0]在设置每个迭代后,您将中断i. 所以,到最后你是b[0]平等a[4]的,其余的都是垃圾,因为你从来没有设置它。

于 2013-04-14T12:25:43.670 回答
1

您的算法等效于:

b[0] = a[4];
于 2013-04-14T12:30:09.347 回答