三维数组最后一次循环 打印不完全 求!

三维数组最后一次循环 打印不完全 求高手指点!!!
运行环境:VC++6.0
#include <iostream.h>
#include <stdlib.h>
int main()
{
int array[5][2][20];
int i,j,k;

for(i=1;i<=5;i++)
{

for(j=1;j<=2;j++)
{
for(k=0;k<=20;k++)
{
array[i][j][k]=(int)(10*rand()/(RAND_MAX+1.0));
cout<<array[i][j][k]<<" ";
}
cout<<endl;
}
cout<<endl;
}

return 0;
}
编译运行后 第三个元素 总是只能显示一行数据 小弟才疏学浅 找不到原因 在线求高手指点!!!!

------解决方案--------------------
for(i=0;i<5;i++)
 {

 for(j=0;j<2;j++)
 {
 for(k=0;k<20;k++)

------解决方案--------------------
探讨

引用:

for(i=0;i<5;i++)
{

for(j=0;j<2;j++)
{
for(k=0;k<20;k++)

非常感谢!!! 还有顺便问句是不是 这种类型的都得左闭右开呢?