本文目录一览

1,如何将二维数组初始化为每个元素都为一个同样的数

memset(a,120,10000*sizeof(int));

如何将二维数组初始化为每个元素都为一个同样的数

2,如何初始化一个二维数组

const int row = 4;int ** M2D = new int * [row];for(int i = 0; i < row; ++ i) M2D[i] = new int [row - i - 1]; for(int j = 0; j < row - i - 1; ++ j) M2D[i][j] = i; }}上面那个例子,就是申请一个4行的三角矩阵原理如下int ** 作为二维数组的存储地址,也可以视为一维数组的数组,先为这个指针申请行空间(对应为各个数组的数组头),再为各个数组头申请一维数组所需的空间二维数组可分为** *[] 和[][],三者的存储方式可以不同,具体的在c++ prime里面有详解
int a[n][n]= if(a[(i-1+n)%n][(j+1)%n]==0) // 所以这里的检测要失败不懂再问

如何初始化一个二维数组

3,C语言 二维数组初始化

我试了一下 编译也是错误的 加0是对的 ;我想应该是 二维数组的初始化的时候 你既然定义了两行两列的矩阵 如果a[2][2]= 0 0 但是如果是a[2][2]={C语言 二维数组初始化,{}}系统不会默认用0代替其他数据 会报错
你的计算机编译器报的什么错误?忘记写;了吧。
这个代码是用产生随机数的方法给二维数组赋值,如果不需要,就把对应的代码删了,再初始化数组就行了,代码功能见代码中的注释。 #include#include void main() {int a[5][5],i,j,k,min; randomize(); /*产生随机数赋给二维数组a*/ for(i=0;i<5;i++) for(j=0;j<5;j++) a[i][j]=random(100); for(i=0;i<5;i++) /*输出二维数组a的值*/ {for(j=0;j<5;j++) printf("%3d",a[i][j]); printf("\n"); } for(i=0;i<5;i++) /*寻找每行的最小元素*/ {k=0; min=a[i][0]; for(j=1;j<5;j++) {if(a[i][j]

C语言 二维数组初始化

4,如何初始化二维数组更有效率

首先要明确数组的在计算机的分配方式。计算机会分配一块《连续》的内存给数组来使用,这样就可以通过《下标》很方便的访问数组的元素。因此数组的长度就一定是要固定的,因为内存是一直在动态的分配和释放的,如果数组的长度不固定,那么数组后面的内存到底还要不要分配给别人。如果分配了,数组忽然要增加,那数组内存就不能是连续的了。所有定义数组时可以省略的字段都是因为可以确定长度,才可以省略。不是说一维数组不能省略长度,当对数组中所有元素都初始化的时候是可以省略的。比如inta[]={1,2,3,4,5},这么一定可以省略长度,因为数组长度固定是5了。而二维数组,当不初始化数组中的任何一个元素时,行列都需要制定,这样才能确定数组的大小。当初始化了其中的元素时,约定制定列数,就可以通过初始化的元素个数,算出最小的行数。但是行列都不制定就不可以了,比如我初始化了6个元素,即可以是a[2][3]也可以是a[3][2]也可以是a[1][6],会发生歧义,是不允许的。所以二维数组的初始化必须制定一个,至于只必须制定行还是必须制定列,再C语言定义的时候大家预定俗成了制定列,所以就延续下来了。
const int row = 4;int ** m2d = new int * [row];for(int i = 0; i < row; ++ i) m2d[i] = new int [row - i - 1]; for(int j = 0; j < row - i - 1; ++ j) m2d[i][j] = i; }}上面那个例子,就是申请一个4行的三角矩阵原理如下int ** 作为二维数组的存储地址,也可以视为一维数组的数组,先为这个指针申请行空间(对应为各个数组的数组头),再为各个数组头申请一维数组所需的空间二维数组可分为** *[] 和[][],三者的存储方式可以不同,具体的在c++ prime里面有详解

5,c语言二维数组初始化

声明时给初始值叫初始化。例如:int b[3][4]=声明后赋值,可以用赋值语句,b[0][0]=1; b[0][1]=2; b[0][2]=3; b[0][3]=4;b[1][0]=5; b[1][1]=6; b[1][2]=7; b[1][3]=8;b[2][0]=4; b[2][1]=4; b[2][2]=4; b[2][3]=4;数据量大时,则用数据文件,用输入语句读入数值。函数传递也可以:void a1(int *a)int b[3][4]=int i,j;for (j=0;j<3;j++)for (i=0;i<4;i++)a[j*4+i]=b[j][i];} main()int a[3][4];int i,j;a1(&a[0][0]); // 把2维数组a[][] 看成1维,数组元素顺序排列for (j=0;j<3;j++)for (i=0;i<4;i++) printf("%3d ",a[j][i]); // 输出获得的数值printf("\n");}return 0;}
用for循环挨个赋值吧for(i=0; i<4; i++) a[0][i]=i+1; a[1][i]=i+5; a[2][i]=4;}
楼主,C语言定义数组后要再像你这样赋值只能逐个赋值或者采用循环的方法了。C语言就是这样。因为定义完数组后,第一a[3][4]并不代表一个数组,第二数组中没有这个元素。(越界)
声明时和声明之后都可以赋值的,声明之后就可以直接访问数组元素了,比如就可以用比如a[0][0]=8;a[2][3]=9;这样来访问了,当然你也可以循环赋值,比如说全赋值为0int i,j;for(i=0;i<3;i++) for(j=0;j<4;j++) a[i][j]=0;另外你上面代码有个问题int a[3][4];是声明一个3行4列的数组,c语言的索引是从0开始的,所以a是从a[0][0]到a[2][3],而a[3][4]是不存在的。

6,c语言有关二维数组变量初始化

例如对整型二维数组a[3][2]赋值方法一:在定义的同时赋值int a[3][2]=方法二:int a[3][2]=方法三:int a[3][2]=方法四:int a[3][2]=第三行第一个元素值为3,第二个元素值为0方法五:int a[3][2];/先定义for(i=0;i<=3;i++) //用双重for循环赋值,i,j表示二维数组下标for(j=0;j<=2;j++)scanf("%d",&a[i][j]);
方法一: 在定义的同时赋值 int a[3][2]=如何将二维数组初始化为每个元素都为一个同样的数;//所有数组元素均为0 方法二: int a[3][2]={1,2,3,4,5,6};//常规的赋值方法 方法三: int a[3][2]={{1,2},{3,4},{5,6}};//分行的赋值方法
例如对整型二维数组a[3][2]赋值方法一:在定义的同时赋值int a[3][2]=方法二:int a[3][2]=方法三:int a[3][2]=方法四:int a[3][2]=第三行第一个元素值为3,第二个元素值为0方法五:int a[3][2];/先定义for(i=0;i<=3;i++) //用双重for循环赋值,i,j表示二维数组下标for(j=0;j<=2;j++)scanf("%d",&a[i][j]);方法六:int[][2]=方法七:int a[3][2];/先定义scanf("%s",a);
方法一:在定义的同时赋值int a[3][2]=方法二:int a[3][2]=方法三:int a[3][2]={{1,2},{3,4},{5,6}};//分行的赋值方法
例如对整型二维数组a[3][2]赋值方法一:在定义的同时赋值int a[3][2]=方法二:int a[3][2]=方法三:int a[3][2]=方法四:int a[3][2]=第三行第一个元素值为3,第二个元素值为0方法五:int a[3][2];/先定义for(i=0;i<=3;i++) //用双重for循环赋值,i,j表示二维数组下标 for(j=0;j<=2;j++) scanf("%d",&a[i][j]);希望对你有所帮助。

文章TAG:二维  二维数组  维数组  初始  二维数组初始化  
下一篇