Šajā apmācībā jūs mācīsities strādāt ar daudzdimensionāliem masīviem (divdimensiju un trīsdimensiju masīviem) ar piemēru palīdzību.
Programmējot C, jūs varat izveidot masīvu masīvu. Šie masīvi ir pazīstami kā daudzdimensionāli masīvi. Piemēram,
float x(3)(4);
Šeit x ir divdimensiju (2d) masīvs. Masīvā var būt 12 elementi. Masīvu var domāt kā tabulu ar 3 rindām un katrā rindā ir 4 kolonnas.
Līdzīgi jūs varat deklarēt trīsdimensiju (3d) masīvu. Piemēram,
float y(2)(4)(3);
Šeit masīvā y var būt 24 elementi.
Inicializē daudzdimensionālu masīvu
Lūk, kā jūs varat inicializēt divdimensiju un trīsdimensiju masīvus:
2d masīva inicializēšana
// 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 masīva inicializēšana
Jūs varat inicializēt trīsdimensiju masīvu līdzīgi kā divdimensiju masīvu. Lūk, piemērs
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. piemērs: divdimensiju masīvs vērtību saglabāšanai un drukāšanai
// 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; )
Rezultāts
Pilsēta 1, diena 1: 33 Pilsēta 1, diena 2: 34 Pilsēta 1, diena 3: 35 Pilsēta 1, diena 4: 33 Pilsēta 1, diena 5: 32 Pilsēta 1, diena 6: 31 Pilsēta 1, diena 7: 30 Pilsēta 2. diena 1: 23 Pilsēta 2, diena 2: 22 Pilsēta 2, diena 3: 21 Pilsēta 2, diena 4: 24 Pilsēta 2, diena 5: 22 Pilsēta 2, diena 6: 25 Pilsēta 2, diena 7: 26 Vērtību parādīšana : 1. pilsēta, 1. diena = 33. Pilsēta, 2. diena = 34. pilsēta, 1. diena, 3. diena = 35. pilsēta, 4. diena = 33. pilsēta, 5. diena = 32. Pilsēta, 6. diena = 31. pilsēta, 1. diena, 7. diena = 30. 2. pilsēta, 1. diena = 23. pilsēta, 2. diena, 2. diena = 22. pilsēta, 2. diena, 3. diena = 21. pilsēta, 2. diena, 4. diena = 24. pilsēta, 2. diena, 5. diena = 22. pilsēta, 2. diena, 6. diena = 25. pilsēta, 2. diena, 7. diena = 26.
2. piemērs: divu matricu summa
// 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; )
Rezultāts
Ievadiet 1. matricas elementus. Ievadiet a11: 2; Ievadiet a12: 0,5; Ievadiet a21: -1,1; Ievadiet a22: 2; Ievadiet 2. matricas elementus. Ievadiet b11: 0.2; Ievadiet b12: 0; Ievadiet b21: 0,23; Ievadiet b22: 23; Matricas summa: 2,2 0,5 -0,9 25,0
3. piemērs: trīsdimensiju masīvs
// 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; )
Rezultāts
Ievadiet 12 vērtības: 1 2 3 4 5 6 7 8 9 10 11 12 Vērtību parādīšana: tests (0) (0) (0) = 1 tests (0) (0) (1) = 2 tests (0) (1) (0) = 3 tests (0) (1) (1) = 4 tests (0) (2) (0) = 5 tests (0) (2) (1) = 6 tests (1) (0) (0) ) = 7 tests (1) (0) (1) = 8 tests (1) (1) (0) = 9 tests (1) (1) (1) = 10 tests (1) (2) (0) = 11 tests (1) (2) (1) = 12