【发布时间】:2017-07-06 09:18:54
【问题描述】:
我正在尝试将二维数组初始化为两个变量值,但它给了我一个错误,也许我没有初始化它,第 15 行是我得到错误的地方。
#include <stdio.h> /* printf, scanf, puts, NULL */
#include <stdlib.h> /* srand, rand */
#include <time.h> /* time */
int main ()
{
int r, i,j,l[i][j],M = 18, Ma = 30, array[7][2];
srand (time(NULL));
for(i=0; i < 7 ; i++)
{
for (int j=0; j<2;j++)
{ int x=Ma + rand() / (RAND_MAX / (M - Ma + 1) + 1);
int y=rand() % 10 + 1;
l[i][j]={x,y};
array[i][j] = l[i][j];
printf("%d\t",array[i][j]);
}
printf("\n");
}
printf("\n") ;
return 0;;
}
【问题讨论】:
-
您遇到的错误是什么?
-
在
int r, i,j,l[i][j],M = 18, Ma = 30, array[7][2];,l[i][j]是死亡。i和j还没有值,所以这个数组的大小是不确定的。 -
/Users/deviprasadtripathy/Documents/test/hw2/main.c:15:17: 错误:预期表达式 l[i][j]={x,y}; ^ 产生 1 个错误。
-
你不能初始化VLA,你也不能做数组赋值。
-
array[i][j]地址正好是一个整数。是什么让您假设,您可以在其中存储 两个 值(x和y)?
标签: c arrays gcc multidimensional-array