Ebben az oktatóanyagban megtanulsz többdimenziós tömbökkel (kétdimenziós és háromdimenziós tömbökkel) dolgozni példák segítségével.
A C programozásban tömb tömböt hozhat létre. Ezeket a tömböket többdimenziós tömböknek nevezzük. Például,
float x(3)(4);
Itt x egy kétdimenziós (2d) tömb. A tömb 12 elemet tartalmazhat. A tömböt 3 soros táblázatként gondolhatja, és minden sor 4 oszloppal rendelkezik.
Hasonlóképpen deklarálhat egy háromdimenziós (3d) tömböt is. Például,
float y(2)(4)(3);
Itt az y tömb 24 elemet tartalmazhat.
Többdimenziós tömb inicializálása
A kétdimenziós és a háromdimenziós tömbök inicializálása a következőképpen történik:
2d tömb inicializálása
// Different ways to initialize two-dimensional array int c(2)(3) = ((1, 3, 0), (-1, 5, 9)); int c()(3) = ((1, 3, 0), (-1, 5, 9)); int c(2)(3) = (1, 3, 0, -1, 5, 9);
3D tömb inicializálása
A háromdimenziós tömböt hasonló módon inicializálhatja, mint a kétdimenziós tömböt. Itt egy példa,
int test(2)(3)(4) = ( ((3, 4, 2, 3), (0, -3, 9, 11), (23, 12, 23, 2)), ((13, 4, 56, 3), (5, 9, 3, 5), (3, 1, 4, 9)));
1. példa: Kétdimenziós tömb értékek tárolására és kinyomtatására
// C program to store temperature of two cities of a week and display it. #include const int CITY = 2; const int WEEK = 7; int main() ( int temperature(CITY)(WEEK); // Using nested loop to store values in a 2d array for (int i = 0; i < CITY; ++i) ( for (int j = 0; j < WEEK; ++j) ( printf("City %d, Day %d: ", i + 1, j + 1); scanf("%d", &temperature(i)(j)); ) ) printf("Displaying values: "); // Using nested loop to display vlues of a 2d array for (int i = 0; i < CITY; ++i) ( for (int j = 0; j < WEEK; ++j) ( printf("City %d, Day %d = %d", i + 1, j + 1, temperature(i)(j)); ) ) return 0; )
Kimenet
1. város, 1. nap: 33, 1. város, 2. nap: 34 1. város, 3. nap: 35. város, 4. nap: 33. város, 1. nap, 5. nap: 32. város 1., 6. nap: 31. város 1., 7. nap: 30. város 2. nap, 1. nap: 23 2. város, 2. nap: 22 2. város, 3. nap: 21 2. város, 4. nap: 24 2. város, 5. nap: 22 2. város, 6. nap: 25: 2. város, 7. nap: 26 Értékek megjelenítése : 1. város, 1. nap = 33. város, 1. nap, 2. nap = 34. város, 1. nap, 3. nap = 35. város, 4. nap = 33. város, 1. nap, 5. nap = 32. város, 1. nap, 6. nap = 31. város, 1. nap, 7. nap = 30 2. város, 1. nap = 23, 2. város, 2. nap = 22. város, 2. nap, 3. nap = 21. város, 2. nap, 4. nap = 24. város, 2. nap, 5. nap = 22. város, 2. nap, 6. nap = 25.
2. példa: Két mátrix összege
// C program to find the sum of two matrices of order 2*2 #include int main() ( float a(2)(2), b(2)(2), result(2)(2); // Taking input using nested for loop printf("Enter elements of 1st matrix"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) ( printf("Enter a%d%d: ", i + 1, j + 1); scanf("%f", &a(i)(j)); ) // Taking input using nested for loop printf("Enter elements of 2nd matrix"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) ( printf("Enter b%d%d: ", i + 1, j + 1); scanf("%f", &b(i)(j)); ) // adding corresponding elements of two arrays for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) ( result(i)(j) = a(i)(j) + b(i)(j); ) // Displaying the sum printf("Sum Of Matrix:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) ( printf("%.1f ", result(i)(j)); if (j == 1) printf(""); ) return 0; )
Kimenet
Írja be az 1. mátrix elemeit Írja be a11: 2; Írja be a12: 0,5; Írja be a21: -1,1; Írja be a22: 2; Írja be a 2. mátrix elemeit Írja be a b11: 0.2; Írja be b12: 0; Írja be a b21 értéket: 0,23; Írja be: b22: 23; A mátrix összege: 2,2 0,5 -0,9 25,0
3. példa: Háromdimenziós tömb
// C Program to store and print 12 values entered by the user #include int main() ( int test(2)(3)(2); printf("Enter 12 values: "); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( for (int k = 0; k < 2; ++k) ( scanf("%d", &test(i)(j)(k)); ) ) ) // Printing values with proper index. printf("Displaying values:"); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 3; ++j) ( for (int k = 0; k < 2; ++k) ( printf("test(%d)(%d)(%d) = %d", i, j, k, test(i)(j)(k)); ) ) ) return 0; )
Kimenet
Adjon meg 12 értéket: 1 2 3 4 5 6 7 8 9 10 11 12 Értékek megjelenítése: teszt (0) (0) (0) = 1 teszt (0) (0) (1) = 2 teszt (0) (1) (0) = 3 teszt (0) (1) (1) = 4 teszt (0) (2) (0) = 5 teszt (0) (2) (1) = 6 teszt (1) (0) (0) ) = 7 teszt (1) (0) (1) = 8 teszt (1) (1) (0) = 9 teszt (1) (1) (1) = 10 teszt (1) (2) (0) = 11. teszt (1) (2) (1) = 12