2017-09-14 11 views
0

配列の異なる行に追加したい3つの大きな整数のグループがあります。これらの整数は次のように定義されています:定義された要素を2D配列に割り当てるC

#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要素です。 私がしようとしているのは、これらのそれぞれを2D配列の行にロードすることですが、説明なしで構文エラーが発生しています。次のように私はそれを試してみました:次のように

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

'ダブルapartmentUsage [3] [30 * 24] = {APARTMENT1_USAGES、APARTMENT2_USAGES、APARTMENT3_USAGES};'。あなたは初期化でそれを行う必要があります。 – mch

答えて

0

は、あなたが直面しているエラーの一つがある: あなたがarray[3]を定義する場合、あなたはarray[0]array[1]array[2]に格納された3つの値を持つことができます。 コード内にあります。それはapartmentUsage[3][..]と定義されていますが、1で始まります。 は完全にあなたの問題を解決することはできませんあまりにもthis-

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

**BUT**このようにする必要があります。コメント欄で指摘したように初期化自体でそれを実行してみてください - double apartmentUsage[3][multiply] = {APARTMENT1_USAGES, APARTMENT2_USAGES, APARTMENT3_USAGES};

+1

'30 * 24'を使うのはおそらく' multiply'を使うのが、配列をVLA(可変長配列)にするのに対し、前者は配列を固定サイズの通常の配列にするためです。 –

関連する問題