首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

这道题的动态储存分配是什么意思啊如何做

2012-04-10 
这道题的动态储存分配是什么意思啊?怎么做?对于每一个正整数n,输出一个n X n蛇形阵列。要求使用动态存储分

这道题的动态储存分配是什么意思啊?怎么做?
对于每一个正整数n,输出一个n X n蛇形阵列。要求使用动态存储分配,
 输入描述
正整数有多个
 输出描述
每个阵列中整数占5位,每阵列输出阵列后输出一空行
 输入样例
7 输出样例
28 29 39 40 46 47 49
  16 27 30 38 41 45 48
  15 17 26 31 37 42 44
  7 14 18 25 32 36 43
  6 8 13 19 24 33 35
  2 5 9 12 20 23 34
  1 3 4 10 11 21 22

怎么修改?
#include <iostream>  
using namespace std;
int main ()
{
int a[100][100];
int n,i,j,c=2;
cin>>n;
i=n-1,j=0,a[i][j]=1;
while (i>=0)
{if (i<1) j=j+1;
else i=i-1;
a[i][j]=c;
while (i<n-1&&j<n-1)
{i=i+1; 
j=j+1;
c=c+1;
a[i][j]=c;
}
if (j<n-1) j=j+1;
else i=i-1;
c=c+1;
a[i][j]=c;  
while (i>0&&j>0)
{i=i-1;
j=j-1;
c=c+1;
a[i][j]=c;
}
c=c+1;
}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{cout<<a[i][j]<<' ';}
cout<<endl;
}
return 0;
}



[解决办法]
二维数组定义

C/C++ code
int **a = new int*[n];for(i = 0; i < n; i++){    a[i] = new int[n];}
[解决办法]
动态分配内存的意思就是随着数据的增长分配内存,你分配了个二维数组一开始就限定了分配内存的大小,用new来分配内存可以根据你实际的需要来分配内存,就是所谓的动态分配

热点排行