【问题标题】:Assigning Defined elements to a 2D Array C将定义的元素分配给 2D 数组 C
【发布时间】:2017-09-14 08:20:05
【问题描述】:

我有 3 个大整数组,我想将它们添加到数组的不同行中。这些整数定义如下:

#define APARTMENT1_USAGES {0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0.189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.111, 0, 0, 0.000, 0, 0, 0, 0, 0, 0.065, 0.167, 0, 0, 0, 0.048, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0}
    #define APARTMENT2_USAGES {0, 0, 0, 0, 0, 0, 0, 0.130, 0, 0, 0, 0, 0, 0.176, 0, 0.125, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.161, 0.000, 0.039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0.000, 0.109, 0, 0.032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.152, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0.135, 0, 0, 0, 0, 0, 0, 0, 0, 0.100, 0, 0, 0.063, 0, 0, 0, 0, 0.000, 0, 0.025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0.000, 0, 0, 0, 0, 0, 0.378, 0, 0.147, 0.229}
    #define APARTMENT3_USAGES {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0, 0, 0, 0, 0, 0.000, 0, 0, 0, 0.01, 0.01, 0.02, 0.03, 0.03, 0, 0, 0, 0, 0.088, 0, 0}

我已经缩短了这些只是为了展示这个想法,它们通常是 30x24 元素。 我想要做的是将这些中的每一个加载到二维数组的一行中,但是在没有解释的情况下出现语法错误。我试过如下:

double apartmentUsage[3][30*24];
apartmentUsage[1][30*24] = APARTMENT1_USAGES;
apartmentUsage[2][30*24] = APARTMENT2_USAGES;
apartmentUsage[3][30*24] = APARTMENT3_USAGES;

【问题讨论】:

  • double apartmentUsage[3][30*24] = {APARTMENT1_USAGES, APARTMENT2_USAGES, APARTMENT3_USAGES};。您必须在初始化时进行。

标签: c arrays multidimensional-array assign


【解决方案1】:

您面临的错误之一如下: 如果定义array[3],则可以在array[0]array[1]array[2] 中存储三个值。 在你的代码中。它定义为apartmentUsage[3][..],但以1 开头。 应该是这样的-

int multiply=30*24;
apartmentUsage[0][multiply] = APARTMENT1_USAGES;
apartmentUsage[1][multiply] = APARTMENT2_USAGES;
apartmentUsage[2][multiply] = APARTMENT3_USAGES;

**BUT** 这也不能完全解决您的问题。尝试在初始化本身中执行它,如 cmets 中所指出的 - double apartmentUsage[3][multiply] = {APARTMENT1_USAGES, APARTMENT2_USAGES, APARTMENT3_USAGES};

【讨论】:

  • 使用30*24 可能比使用multiply 更可取,因为后者使数组成为VLA(可变长度数组),而前者使其成为常规、固定大小的数组。跨度>
猜你喜欢
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-29
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多