有人可以解释为什么这个算法
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];
}
完美运行?问题是编写一个程序将一个数组的元素复制到另一个数组中。
有人可以解释为什么这个算法
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];
}
完美运行?问题是编写一个程序将一个数组的元素复制到另一个数组中。
你的第一个代码是错误的。它分配b[0] = a[0]
,然后b[0] = a[1]
等等。你break
阻止循环去j = 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]
的,其余的都是垃圾,因为你从来没有设置它。
您的算法等效于:
b[0] = a[4];