【问题标题】:I want initialize two variables to a 2d Array in C language我想用 C 语言将两个变量初始化为二维数组
【发布时间】: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] 是死亡。 ij 还没有值,所以这个数组的大小是不确定的。
  • /Users/deviprasadtripathy/Documents/test/hw2/main.c:15:17: 错误:预期表达式 l[i][j]={x,y}; ^ 产生 1 个错误。
  • 你不能初始化VLA,你也不能做数组赋值。
  • array[i][j] 地址正好是一个整数。是什么让您假设,您可以在其中存储 两个 值(xy)?

标签: c arrays gcc multidimensional-array


【解决方案1】:

在初始化时你不能写变量,所以代替 l[i][j] 提到 l[10][10] 就不会发生错误。

【讨论】:

    猜你喜欢
    • 2022-01-10
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2021-04-04
    • 1970-01-01
    • 2012-11-29
    相关资源
    最近更新 更多