Вступ до багатовимірного масиву на C

Ця стаття присвячена багатовимірному масиву c, який переважно використовується в комп'ютерному та дослідницькому аналізі. Як правило, масив лінійно фокусує частину інформації, яка, як кажуть, одновимірна. Одновимірний зберігає дані лише одиничної інформації, як рено студенти. У деяких ситуаціях потрібно зберігати дані у форматі таблиці, що містить рядки та стовпці, або обробляти складні дані. Для його візуалізації нам потрібен матричний формат, який ми назвали двовимірними масивами, де розташування вимагає пікселів зображення, графіки. Дані зберігаються в таблиці. Маніпуляції з масивом виконуються шляхом перестановки елемента за допомогою таких функцій, як переформатування, стиснення.

Як оголосити багатовимірний масив на C?

Синтаксис:

Загальне оголошення багатовимірного масиву подається у вигляді:

type name ( size) (size)……. N;

  • Тут назва типу даних - Позначає тип елементів (ціле число, плаваючий).
  • Назва масиву - позначає ім'я, присвоєне розмірному масиву.
  • Розмір рядка - кількість елементів рядка, напр. row-size = 8, тоді масив має 8 рядків.
  • Розмір стовпця - кількість елементів стовпця.

Як ініціалізувати багатовимірний масив на C?

Розмір багатовимірних масивів прогнозується множенням розмірів різних розмірів. І вони зберігають значення у вигляді двох способів, як рядок-мажор та стовпчик-мажор. І розподіл пам'яті підтверджує властивості як довжини, так і ранжування.

У C багатовимірний масив має три типи:

  1. Двовимірний масив
  2. Тривимірний масив
  3. Чотиривимірний масив

1. Двовимірний масив

Двовимірний масив структурується як матриці та реалізується за допомогою рядків і стовпців, також відомих як масив масивів. Розподіл пам’яті виконується або в магістралі рядків, і в стовпці. А формат за замовчуванням - Row-Major. При прийнятті 2-D масиву кожен елемент вважається 1-D масивом або, як відомо, є набором 1-D масиву. Дво-d масив використовує два для циклів або вкладених циклів, де зовнішні петлі виконують від 0 до початкового індексу.

Синтаксис:

type array name ( no. of rows) ( no. of Columns);

Приклад:

int td (4)(3);

тут 4 - ні. рядків і 3 - немає стовпців.

Ініціалізація двовимірного масиву

Ініціалізація в 2-D масиві проводиться декількома способами, це показано тут.

int m (3)(2) = ((10, 3) (4, 2) (6, 4) (5, 4) (3, 4));
int di (2)(4) = (10, 5, 8, 12, 45, 13, 11, 61);

Тут ми згадали про ні. рядків і стовпців у вікні Обов'язково потрібно призначити другий індекс, щоб зрозуміти компілятор про закінчення та початок рядка. Наведена нижче таблиця показує розподіл пам'яті 2-D масиву.

Кількість елементів визначається шляхом маніпулювання кількістю рядків і стовпців і множенням ні. рядків і стовпців відповідно. для інстанції, немає. елементів містить масив B (-2… 4, -3.6). Він обчислюється нижньою та верхньою межею.

No. of rows= UB-LB +1
=4-(-2) +1 = 4+2+1= 7
No. of columns = UB-LB +1
= 6-(-3) + 1= 11
No. of elements = Rows * columns = 7 * 11 =77 elements

Впровадження

Це робиться за допомогою головних рядків та основних стовпців

Рядовий майор:
Формула для маніпуляції адресою подається у вигляді:
= B +W ( n(I-1) +(J-1))
Де b- базова адреса та n- Кількість стовпців для W байтів.
Основний стовпець:
= B +W ( r(j-1) +(i-1))
де r - є ні. рядків

Приклади двовимірного масиву

Прикладами двовимірного масиву є:

Приклад №1

Кожному елементу масиву A (-10.10, 20… 35) потрібно 1 байт пам'яті. І масив підходить до основного стовпця за адресою 400, Знайдіть розташування A (0, 30).

Рішення

BA =400, W=1
R = no. of rows -> 10-(-10) +1 = 21
I= -10; J= 20
Address A (0, 30) = 400 + 1((0-(-10) +21(30-20))) =400 +(10+21*10)
=400 +(10+210) = 620

Знайома операція, що виконується у двовимірному масиві, - це алгебра матриць з m * n матрицею B. Математична концепція матриці реалізована так само, як і в програмуванні.

Наведений нижче приклад зберігає елемент у форматі матриці та друкує той самий.

Код:

#include
int main ()
(
int a(3)(4), i, j;
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("Enter arr(%d)(%d): ", i, j);
scanf("%d", &a(i)(j));
)
)
printf("\nEntered 2-D array is: \n\n");
for(i = 0; i < 3; i++)
(
for(j = 0; j < 4; j++)
(
printf("%3d ", a(i)(j) );
)
printf("\n");
)
return 0;
)

Вихід:

Приклад №2

Програма C, що виконує суму двох матриць.

Код:

#include
int main()
(
int mat(20)(20);
int i, j, r, c;
int s;
printf("Enter number of Rows :");
scanf("%d", &r);
printf("Enter number of Cols :");
scanf("%d", &c);
printf("\nEnter matrix elements :\n");
for(i=0;i< r;i++)
( for(j=0;j< c;j++)
(
printf("Enter the number of inputs (%d, %d) : ", i+1, j+1);
scanf("%d", &mat(i)(j));
)
)
printf("\n");
for(i=0;i< r;i++)
(
s=0;
for(j=0;j< c;j++)
(
printf("%d\t", mat(i)(j));
s+=mat(i)(j);
)
printf("\tSUM : %d", s);
printf("\n");
)
)

Вищенаведена програма обчислює суму двох матриць A (20, 20) B (20, 20) за умови, що вони мають дві однакові матриці. Через для циклу, для прийняття матриці потрібно дві вхідні матриці та петлі.

Вихід:

Приклад №3

Транспонування матриці

Обмінюючись рядками та стовпцями, щоб утворити нову матрицю, відому як перенесення матриці.

Приклад:

Потім Transpose дайте,

Перенесення матриці за допомогою програми C

Код:

#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)
#include
int main()
(
int T(5)(5), i, j, a, b;
printf(" No.of rows?");
scanf("%d", &a);
printf("No.of columns?");
scanf("%d", &b);
printf("\nEnter the elements in matrix:\n");
for(i=0;i for(j=0;j scanf("%d", &T(i)(j));
printf("\nTranspose matrix is given as:\n");
for(i=0;i (
for(j=0;j printf("%d ", T(j)(i));
printf("\n");
)
return 0;
)

У вищенаведеній програмі Для читання матриці ми використовували дві для циклів, а для друку її перенесення вкладений цикл використовується для відображення виводу. Тут ми використовували матрицю 3 * 3.

Вихід:

2. Тривимірний масив

Він називається масивом елементів масиву або масивом матриць. Це зовсім непрозоро, але як тільки ви практикуєтесь до логіки, яку це зробити простіше у виконанні. і для цього тривимірного масиву потрібно більше трьох розмірів і потрібно зберігати основну пам'ять.

Його можна оголосити як:

data_type array_name (table name) ( no. of row) ( no. of column) int L(m)(n) (p);

int L (3) (4) (2); Тут масив L може містити 24 елементи. І все це може бути ініціалізовано в процесі компіляції, але, коли неініціалізовані, вони ставляться у значення сміття.

Ініціалізація може бути виконана так само, як і двовимірний масив. Ось зразок,

int L (2)(3)(4) = (((2, 2, 1, 3), (1, 6, 5, 11), (22, 11, 13, 5)), ((13, 5, 77, 8), (6, 8, 2, 4), (3, 2, 7, 8)));

Приклади тривимірного масиву

Ось кілька прикладів тривимірного масиву, які наведені нижче:

Приклад №1

Нижче наводиться простий приклад програмування на С, що ілюструє тривимірний масив. Це робиться за допомогою циклу, розглядаючи 3 петлі для 3d елементів.

Код:

#include
void main()
(
printf("three dimensional array!\n\n");
int i, j, k, s(2)(1)(2), siz;
siz=2*1*2;
printf("Enter %d elements: \n", siz);
for(i = 0; i < 2; ++i)
(
for (j = 0; j < 1; ++j)
(
for(k = 0; k < 2; ++k )
(
scanf("%d", &s(i)(j)(k));
)
)
)
printf("The stored values are:\n\n");
for(i = 0; i < 2; i++)
(
for (j = 0; j < 1; j++)
(
for(k = 0; k < 2; k++)
(
printf("sample(%d)(%d)(%d) = %d\n", i, j, k, s(i)(j)(k));
)
)
)
)

Вихід:

Приклад №2

Ще один приклад 3-D масиву для друку елементів автоматично.

Код:

#include
int main()
(
int m(2)(3)(2) =
(
( (1, 2), (3, 5), (6, 5) ),
( (8, 3), (8, 7), (9, 11) )
);
for (int i = 0; i <2; ++i)
(
for (int j = 0; j <3; ++j)
(
for (int k = 0; k <2; ++k)
printf("Value at m(%d)(%d)(%d) = %d\n", i, j, k, m(i)(j)(k));
)
)
)
return 0;
)

Вихід:

3. Чотиривимірний масив

Це масив тривимірного масиву і дуже важко керувати розмірами. Це розглядається як купа кубів разом і застосовна для космічних векторів.

Декларація 4-D масиву:

Введіть назву масиву (1) (2) (3) (4) ……. (n) де 1, 2 позначає розміри, а n означає n-й розміри.

Приклад:

int state (5)(6)(7)(8);

Приклад чотиривимірного масиву

Програма C для реалізації 4- D масиву.

Код:

#include
int main()
(
int i, j, k, l, s;
int d(2)(2)(2)(2);
s = 2;
d(0)(0)(0)(0) = 4;
d(0)(0)(0)(1) = 3;
d(0)(0)(1)(0) = 2;
d(0)(0)(1)(1) = 6;
d(0)(1)(0)(0) = 6;
d(0)(1)(0)(1) = 8;
d(0)(1)(1)(0) = 1;
d(0)(1)(1)(1) = 2;
d(1)(0)(0)(0) = 6;
d(1)(0)(0)(1) = 9;
d(1)(0)(1)(0) = 5;
d(1)(0)(1)(1) = 1;
d(1)(1)(0)(0) = 9;
d(1)(1)(0)(1) = 7;
d(1)(1)(1)(0) = 5;
d(1)(1)(1)(1) = 7;
for (i = 0; i < s; i++) (
for (j = 0; j < s; j++) (
for (k = 0; k < s; k++) (
for (l = 0; l < s; l++) (
printf("Value of stdio(%d)(%d)(%d)(%d): %d ", i, j, k, l, d(i)(j)(k)(l));
printf("\n");
)
)
)
)
return 0;
)

Вихід:

Висновок

Зрештою, у цій статті ми обговорили багатовимірні масиви та їх підтипи в програмуванні на С. А також їх декларація та доступ до елементів у матричному форматі. Ці методи застосовуються у такій концепції, як двійковий пошук та впорядкування. Тут індекс відіграє ключову роль, оскільки вони задають елемент у структурі масиву.

Рекомендовані статті

Це посібник з багатовимірного масиву в C. Тут ми обговорюємо, як ініціалізувати багатовимірний масив на C разом із прикладами. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Кращі компілятори C
  2. 2D масиви в C #
  3. 2-D масиви в С
  4. C Класи зберігання
  5. C Матричне множення програмування
  6. 3 різні типи масивів у PHP (приклади)
  7. Як працює масив в Unix із синтаксисом?