Массивы в C

Содержание
  1. Описание Предположим, мы хотим сохранить 50 имен учащихся класса. Можно попробовать объявить 50 переменных, например st_name0, st_name1, .., st_name49. Однако гораздо лучше определить все эти имена в одной переменной, которая называется массивом. — Массив — это набор данных одного типа (и, следовательно, одного размера), хранящихся в последовательных ячейках памяти под одним именем. — объявляется сразу весь массив. — На каждый отдельный элемент массива можно ссылаться путем индексации. Индексированный означает, что элементы массива пронумерованы и всегда начинаются с 0. В C к элементу массива (то есть к отдельному элементу данных) обращаются путем указания имени массива, за которым следует один или дополнительные индексы, каждый из которых заключен в квадратные скобки. Объявление массива Объявление массива похоже на форму обычного объявления. Общая форма такова: typeName ArrayName [size] = {список значений} Объявляет массив с указанным размером, с именем ArrayName и типом typeName. Массив индексируется от 0 до (размер-1). Размер (в скобках) должен быть целочисленным литералом или постоянной переменной. Компилятор использует размер, чтобы определить, сколько места выделить (т.е. сколько байтов). Вот несколько примеров: int A [10]; //Массив из десяти целых чисел; A [0], A [1],…, A [9] имя символа [20]; //Массив из 20 символов float nums [50]; //Массив из пятидесяти плавающих чисел; числа [0], числа [1],…, числа [49] int C []; //Массив неизвестного количества целых чисел; C [0], C [1],…, C [size-1] int table [5] [10]; //Двумерный массив целых чисел Вы также можете объявить массив следующим образом: #define ROLL_NUMBERS 51 int classv [ROLL_NUMBERS]; const int Emp_salary = 35 float Employee [Emp_salary]; Пример: int A [10]; Объявляет 10 целых чисел и может быть доступен по имени A Каждой переменной назначается уникальное местоположение (местоположение также называется индексом). Диапазон расположения от 0 до (длина — 1). Для указанного массива диапазон расположения составляет от 0 до 9. См. Следующую диаграмму, которая представляет массив A [10]: Индекс 0 1 2 3 4 5 6 7 8 9 Значение 15 8 14 45 48 45 -57 45 1 0 Индексирование в массивы Чтобы ссылаться на один элемент массива, используйте имя массива [индекс]. Например: A [4] содержит значение 48 A [9] содержит значение 0 Индексированные элементы можно использовать так же, как простые переменные. printf («% d n», A [4]); //выводим 48 элементов массива и циклов Элементы массива обычно используются в циклах for, см. следующие коды: for (x = 0; x Инициализация массива Мы объявляем обычные переменные в следующими способами: int x; x = 0; или int x = 0; В случае массива просто перечислите значения массива в обозначении набора {}. Некоторые допустимые объявления массивов показаны ниже. int num [6] = {1, 3, 5, 7, 9, 11}; символьные буквы [5] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; числа с плавающей запятой [3] = {13.25, 12.09, 8.1}; Использование элементов массива в выражениях Элементы массива могут использоваться везде, где может использоваться переменная того же типа. См. Следующую схему и коды. Пример: int A [10]; Индекс 0 1 2 3 4 5 6 7 8 9 значение 15 8 14 45 48 45 -57 45 1 0 x = A [1] * 2; /* устанавливает x равным 16 */ A [4] = 88; /* заменяет 48 на 88 */ m = 6; y = A [m]; /* устанавливает y равным –57 */ z = A [A [9]]; /* устанавливает z равным 15 */ Пример -1: Семь чисел хранятся в множество. Следующая программа печатает все числа этого массива, а также печатает числа в обратном порядке. #include int main () {int M [10] ; int j;/* сохраняем семь чисел в массиве M */M [0] = 2; M [1] = 4; M [2] = 6; M [3] = 8; M [4] = 10; M [5] = 12; M [6] = 14;/* вывести числа в M */printf («Вывести все числа: n»); for (j = 0; j = 0; --j) {printf ("M [% d] =% d n", j, M [j]); }} Вывод: Пример -2: Следующая программа вычисляет простые числа от 1 до MXNO. #include #define MXNO 50int main () {int M [MXNO]; int j, n; /* отметить все числа */printf ("Простые числа: n n"); для (j = 0; j Копирование массивов: У нас есть два массива list1 и list2 int список1 [6] = {2, 4, 6, 8, 10, 12}; int list2 [6]; и мы хотим скопировать содержимое списка list1 в list2. Для общих переменных (например, int x = 3, y = 5) мы используем простой оператор присваивания (x = y или y = x). Но для массивов следующее утверждение неверно. list2 = list1; Мы должны копировать между массивами элемент за элементом, и два массива должны иметь одинаковый размер. В следующем примере мы используем цикл for, который упрощает эту задачу. #include main () int list1 [6] = {2, 4, 6, 8, 10, 12}; int list2 [6]; for (int ctr = 0; ctr Вывод: Элементы list2: 2 4 6 8 10 12 Двумерный массив в C Двумерный массив можно использовать для представления матрицы, таблицы или настольных игр (крестики-нолики, судоку и т. д.). Позиции строк и столбцов даны как последовательные индексы. Когда вы объявляете переменную такого массива, используйте пару квадратных скобок для каждого измерения. См. Следующий пример: //Объявить двумерный массив с 3 строками и 2 столбцами int table [3] [2]://создать и инициализировать arrayint table [ 3] [2] = {{10, 22}, {33, 44}, {45, 78}}; или int table [3] [2] = {10, 22, 33, 44, 45, 78}; или int table [3] [2] = {{10, 22}, {33, 44}, {45, 78}}; См. следующую диаграмму, которая представляет указанный выше массив: 0 1 0 10 22 1 33 44 2 45 78 В приведенном выше массиве: table [1] [1] содержит 22 table [2] [0] содержит 45 table [2] [2] is «массив вне границ» Печать двумерного массива Чтобы распечатать все элементы двухмерного массива, мы используем двояковложенный цикл for. В следующем примере 3 строки и 2 столбца. #include main () {int row, col; int table [3] [2] = {{10, 22}, {33, 44}, {45, 78}}; для (строка = 0; строка Вывод:
  2. Объявление массива
  3. Индексирование в массивы
  4. элементов массива и циклов
  5. Инициализация массива
  6. Использование элементов массива в выражениях
  7. Копирование массивов:
  8. Двумерный массив в C
  9. Печать двумерного массива

Описание

Предположим, мы хотим сохранить 50 имен учащихся класса. Можно попробовать объявить 50 переменных, например st_name0, st_name1, .., st_name49. Однако гораздо лучше определить все эти имена в одной переменной, которая называется массивом.

— Массив — это набор данных одного типа (и, следовательно, одного размера), хранящихся в последовательных ячейках памяти под одним именем.

— объявляется сразу весь массив.

— На каждый отдельный элемент массива можно ссылаться путем индексации. Индексированный означает, что элементы массива пронумерованы и всегда начинаются с 0.

В C к элементу массива (то есть к отдельному элементу данных) обращаются путем указания имени массива, за которым следует один или дополнительные индексы, каждый из которых заключен в квадратные скобки.

Объявление массива

Объявление массива похоже на форму обычного объявления. Общая форма такова:

 typeName ArrayName [size] = {список значений} 

Объявляет массив с указанным размером, с именем ArrayName и типом typeName. Массив индексируется от 0 до (размер-1). Размер (в скобках) должен быть целочисленным литералом или постоянной переменной. Компилятор использует размер, чтобы определить, сколько места выделить (т.е. сколько байтов). Вот несколько примеров:

  int A [10]; //Массив из десяти целых чисел;  A [0], A [1],…, A [9] имя символа [20]; //Массив из 20 символов float nums [50]; //Массив из пятидесяти плавающих чисел;  числа [0], числа [1],…, числа [49] int C []; //Массив неизвестного количества целых чисел;  C [0], C [1],…, C [size-1] int table [5] [10]; //Двумерный массив целых чисел  

Вы также можете объявить массив следующим образом:

  #define ROLL_NUMBERS 51  int classv [ROLL_NUMBERS]; const int Emp_salary = 35 float Employee [Emp_salary];  

Пример: int A [10];

  • Объявляет 10 целых чисел и может быть доступен по имени A
  • Каждой переменной назначается уникальное местоположение (местоположение также называется индексом). Диапазон расположения от 0 до (длина — 1). Для указанного массива диапазон расположения составляет от 0 до 9.

См. Следующую диаграмму, которая представляет массив A [10]:

Индекс 0 1 2 3 4 5 6 7 8 9
Значение 15 8 14 45 48 45 -57 45 1 0

Индексирование в массивы

Чтобы ссылаться на один элемент массива, используйте имя массива [индекс].

Например:

A [4] содержит значение 48

A [9] содержит значение 0

Индексированные элементы можно использовать так же, как простые переменные.

printf («% d n», A [4]); //выводим 48

элементов массива и циклов

Элементы массива обычно используются в циклах for, см. следующие коды:

  for (x = 0; x  

Инициализация массива

Мы объявляем обычные переменные в следующими способами:

int x;
x = 0;
или
int x = 0;

В случае массива просто перечислите значения массива в обозначении набора {}. Некоторые допустимые объявления массивов показаны ниже.

int num [6] = {1, 3, 5, 7, 9, 11};
символьные буквы [5] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’};
числа с плавающей запятой [3] = {13.25, 12.09, 8.1};

Использование элементов массива в выражениях

Элементы массива могут использоваться везде, где может использоваться переменная того же типа. См. Следующую схему и коды.

Пример: int A [10];

Индекс 0 1 2 3 4 5 6 7 8 9
значение 15 8 14 45 48 45 -57 45 1 0

x = A [1] * 2; /* устанавливает x равным 16 */

A [4] = 88; /* заменяет 48 на 88 */

m = 6;

y = A [m]; /* устанавливает y равным –57 */

z = A [A [9]]; /* устанавливает z равным 15 */

Пример -1:

Семь чисел хранятся в множество. Следующая программа печатает все числа этого массива, а также печатает числа в обратном порядке.

  #include  int main () {int M [10]  ; int j;/* сохраняем семь чисел в массиве M */M [0] = 2;  M [1] = 4;  M [2] = 6;  M [3] = 8;  M [4] = 10;  M [5] = 12;  M [6] = 14;/* вывести числа в M */printf («Вывести все числа:  n»);  for (j = 0; j  = 0; --j) {printf ("M [% d] =% d  n", j, M [j]);  }}  

Вывод:

Пример -2:

Следующая программа вычисляет простые числа от 1 до MXNO.

  #include  #define MXNO 50int main () {int M [MXNO];  int j, n; /* отметить все числа */printf ("Простые числа:  n  n");  для (j = 0; j  

Копирование массивов:

У нас есть два массива list1 и list2

int список1 [6] = {2, 4, 6, 8, 10, 12};

int list2 [6];

и мы хотим скопировать содержимое списка list1 в list2. Для общих переменных (например, int x = 3, y = 5) мы используем простой оператор присваивания (x = y или y = x). Но для массивов следующее утверждение неверно.

list2 = list1;

Мы должны копировать между массивами элемент за элементом, и два массива должны иметь одинаковый размер. В следующем примере мы используем цикл for, который упрощает эту задачу.

  #include  main () int list1 [6] = {2, 4, 6, 8, 10, 12}; int list2 [6];  for (int ctr = 0; ctr  

Вывод:

 Элементы list2: 2 4 6 8 10 12 

Двумерный массив в C

Двумерный массив можно использовать для представления матрицы, таблицы или настольных игр (крестики-нолики, судоку и т. д.). Позиции строк и столбцов даны как последовательные индексы. Когда вы объявляете переменную такого массива, используйте пару квадратных скобок для каждого измерения. См. Следующий пример:

 //Объявить двумерный массив с 3 строками и 2 столбцами int table [3] [2]://создать и инициализировать arrayint table [  3] [2] = {{10, 22}, {33, 44}, {45, 78}};  

или

  int table [3] [2] = {10, 22, 33, 44, 45, 78};  

или

   int table [3] [2] = {{10, 22}, {33, 44}, {45, 78}};   

См. следующую диаграмму, которая представляет указанный выше массив:

0 1
0 10 22
1 33 44
2 45 78

В приведенном выше массиве:

table [1] [1] содержит 22

table [2] [0] содержит 45

table [2] [2] is «массив вне границ»

Печать двумерного массива

Чтобы распечатать все элементы двухмерного массива, мы используем двояковложенный цикл for. В следующем примере 3 строки и 2 столбца.

  #include  main () {int row, col;  int table [3] [2] = {{10, 22}, {33, 44}, {45, 78}};  для (строка = 0; строка  

Вывод:


Оцените статью
nanomode.ru
Добавить комментарий