2017-09-14 1 views
0

Ich habe 3 große Gruppen von Ganzzahlen, die ich verschiedenen Zeilen eines Arrays hinzufügen möchte. Diese Zahlen sind wie folgt definiert:Definierte Elemente einem 2D-Array zuweisen 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} 

I verkürzt haben diese nur die Idee zu zeigen, sie sind in der Regel 30x24 Elemente. Was ich versuche zu tun ist, laden Sie jede dieser in eine Zeile eines 2D-Arrays, aber bekomme einen Syntaxfehler ohne Erklärung. Ich habe es versucht, wie folgt:

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

'double apartmentUsage [3] [30 * 24] = {APARTMENT1_USAGES, APARTMENT2_USAGES, APARTMENT3_USAGES};'. Sie müssen es in der Initialisierung tun. – mch

Antwort

0

Einer der Fehler, die Sie konfrontiert sind, ist wie folgt: Wenn Sie array[3] definieren, können Sie drei Werte in array[0], array[1] und array[2] gespeichert. In Ihrem Code. Es ist definiert als aber beginnt mit 1. Sollte wie this- seine

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

**BUT** auch diese nicht vollständig Ihr Problem lösen. Versuchen Sie es in der Initialisierung selbst, wie in den Kommentaren - double apartmentUsage[3][multiply] = {APARTMENT1_USAGES, APARTMENT2_USAGES, APARTMENT3_USAGES};

+1

Die Verwendung von '30 * 24 'ist wahrscheinlich vorzuziehen, wenn' Multiplizieren 'verwendet wird, da letzteres das Array zu einem VLA (Array variabler Länge) macht, während das erstere es zu einem regulären, festen Array macht. –

Verwandte Themen