vc++中数组的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 12:00:21
书上的例子:数字斜塔;
就是操作者输入一个整数(斜塔层数)显示的效果如下:
1 3 6 10……
2 5 9……
4 8……
7……
.
.
.
书上给出大程序://*******************
// program26.cpp
//*******************

#include "iostream.h"

int main()
{
int m[40][40];
int i,j,k;
m[0][0]=1;
cout<<"请输入矩阵的层数:";
cin>>k;
for (i=0;i<k;i++)
{
if(i>0)
m[i][0]=m[i-1][0]+i;
for(j=0;j<k;j++)
{
if(j>0)
m[i][j]=m[i][j-1]+i+j+1;
if(i+j==k-1)
break;
}
}
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
if(j+i==k-1)
break;
cout<<m[i][j]<<endl;
}
cout<<"\n";
}
return 1;
}
我想问的是为什么不能把后面的
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
if(j+i==k-1)
break;
去掉呢?为什么去掉后就出现不同的结果。
我感觉那一段循

前面的双重循环是给数组赋值的,后面的是判断输出,作用不一样

还有就是你程序打出来的也有问题:

for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
if(j+i==k-1)
break;
cout<<m[i][j]<<endl;//这行应该是cout<<m[i][j]<<" ";吧