C и C + + программирование ресурсов

Закладки
Система пользовательского поиска

Массивы в качестве структуры данных в C / C + + программирование

Опубликовано 28 марта 2009

Как уже говорилось в предыдущем посте, Есть два типа структур данных, доступных для C / C + + программистов. Один из них уже встроены в язык программирования и другие одна немного комплекса в том смысле, что оно может быть реализовано с помощью встроенного в структуры данных и типы данных. В C / C + + язык программирования, построенный в структурах данных включают массивов, структур, объединений и классов. Некоторые из примеров сложных структур данных стек, очередь, связанный список, дерево и Graph.

Целью данного руководства является первым научить вас, чтобы объявить, инициализировать и использовать простые массивы, а также многомерные массивы. Вы также будете иметь возможность использовать массивы в качестве структуры данных в C / C + +-программе. Итак, в конце этого руководства вы сможете ответить:

  • Что такое массив и как можно его использовать?
  • Как объявлять и инициализировать простые массивы?
  • Как объявлять и инициализировать многомерные массивы?
  • Как выполнять простые операции над массивами?

Что такое массив?

Array очень простой структуры данных, предоставляемых каждый язык программирования. Давайте поговорим о примере сценария, где мы должны хранить данные 10 сотрудников в C / C + + программы, включая имя, возраст и заработной платы. Одно из решений заключается в объявлении 10 различных переменных для хранения и имя сотрудника, еще десять лет, чтобы хранить и так далее. Кроме того, вам потребуется какой-то механизм, чтобы получить информацию о сотруднике, поиск записей о сотрудниках и сортировать их. Для решения такого рода задачи C / C + + обеспечивает механизм, называемый массивы.

Определение

Массив просто количество ячеек памяти, каждая из которых может хранить элемент данных одного и того же типа данных, и которые все ссылки через те же имя переменной. Айвор Хортон.

Массив может быть определена абстрактно, как конечной целью набор однородных элементов. Таким образом, мы можем сказать, что Есть конечного числа элементов в массиве, и все элементы одного типа данных. Кроме того, элементы массива приказал т.е. мы можем получить доступ к определенному элементу массива по индексу.

Как объявить массив?

Общий вид объявить простой (1 мерная) массив

  [Array_type variable_name array_size]; 

в C / C + + программу, вы можете объявить массив как

  Возраст Int [10]; 

Здесь array_type заявляет, базовый тип массива, который является тип каждого элемента в массиве. В нашем примере это array_type Int и его имя век. Размер массива определяется array_size т. 10. Мы можем получить доступ к элементам массива по индексу, и первый пункт в массив с индексом 0. Первый элемент массива называется нижней границы и ее всегда 0. Высоким элемента в массиве называется верхней границей.

В языке программирования C верхняя и нижняя границы не может быть изменен в ходе выполнения программы, поэтому длина массива может быть установлена только тогда, когда программа в письменной форме.

Возраст 0

Возраст 1

Возраст 2

Возраст 3

Возраст 4

Возраст 5

Возраст 6

Возраст 7

Возраст 8

Возраст 9

30

32

54

32

26

29

23

43

34

5

Массив имеет 10 элементов

Примечание: Одна хорошая практика, чтобы объявить массив длины постоянного идентификатора. Это позволит свести к минимуму необходимых работ для изменения размера массива при разработке программ.

Принимая во внимание, мы объявили массив выше, мы можем объявить его как

  # Определить NUM_EMPLOYEE 10
    Возраст Int] [NUM_EMPLOYEE; 

Как инициализировать массив?

Инициализация массива очень прост в обращении с программированием. Есть два способа инициализации массивов.

  • Объявление и инициализация массива в одном заявлении.
  • Объявление и инициализация массива в отдельности.

Посмотрите на следующий код С, который показывает, декларации и инициализации массива.

  Возраст Int [5] = (30, 22, 33, 44, 25);
    Возраст Int [5];
    Возраст [0] = 30;
    Возраст [1] = 22;
    Возраст [2] = 33;
    Возраст [3] = 44;
    Возраст [4] = 25; 

Массив может быть инициализирован в пути, что размер массива не указан, в таком случае компилятор автоматически выделяет память для массива.

  Возраст Int [] = (30, 22, 33, 44, 25); 

Давайте напишем простую программу, которая использует массивы распечатать число работников, имеющих зарплату получают больше, чем 3000.

Массив в С Программирование

  # Включить <windows.h>
 # Включить <stdio.h>
 # Включить <stdlib.h>
 # Определить NUM_EMPLOYEE 10

 тап_п (агдс, спаг * агду []) (
	 Int зарплату [NUM_EMPLOYEE], lCount = 0, gCount = 0, = 0;
	 ("Введите сотрудника зарплата (максимум 10) \ п");
	 для (я = 0; я <NUM_EMPLOYEE; я + +) (
		 Е ("\ оклада сотрудника nEnter:% D -", я +1);
		 зсапЕ ("% D", и зарплату [я]);
	 )

	 для (я = 0; я <NUM_EMPLOYEE; я + +) (
		 если (зарплату [я] <3000)
			 lCount + +;
		 еще
			 gCount + +;
	 )

	 Е ("\ nВозможно являются (D)% сотрудников с заработной платой свыше 3000 \ п", gCount);
	 Е ("Есть (% D) работник с заработной платой менее 3000 \ п", lCount);
	 Е ("Нажмите ENTER, чтобы продолжить ... \ п");
	 деЬспаг ();
	 возврат 0;
 ) 

Массив в С + + Программирование

 # Включить <cstdlib> # # включить <iostream> определить NUM_EMPLOYEE 10 патезрасе зЬй; тап_п (агдс, спаг * агду []) (Int зарплату [NUM_EMPLOYEE], lCount = 0, gCount = 0, = 0; суд <<"Введите сотрудника зарплата (макс. 10)" <<епсИ; для (я = 0; я <NUM_EMPLOYEE; я + +) (суд <<"Введите сотрудника зарплата: - <<я +1 <<епсИ; п>> Зарплата [г];) для (я = 0; я <NUM_EMPLOYEE; я + +) (если (зарплату [г] ^ 3000) lCount + +; другое gCount + +;) суд <<"Есть" <<gCount <<"работник с заработной платой более 3000 "<<епй <<" Есть "<<lCount <<" работник с заработной платой менее 3000 "<<епсИ; системы (" PAUSE "); возвращение EXIT_SUCCESS;) 

Как объявлять и инициализировать многомерные массивы?

Часто возникает необходимость управлять табличных данных или матрицы. Например, если у сотрудника зарплата увеличилась на 20%, и вы должны хранить и заработной платы в вашей программе. Далее вам потребуется для хранения этой информации в двумерных массивов. C / C + + дает вам возможность иметь массивов любой размерности.

Multi массивы размерности

Рассмотрим приведенный выше пример, у вас есть для хранения, предыдущий оклад, оклад и настоящее суммы прироста. В этом случае вам необходимо хранить эту информацию в трехмерные массивы.

Сначала я покажу вам, как объявить двумерного массива и инициализировать его. Затем написать полной программе использовать многомерные массивы.

  Int зарплату [10] [2]; 

Это определяет массив, содержащий 10 элементов типа Int. Каждый из этих элементов сам по себе является массив из двух целых чисел. Таким образом, чтобы отслеживать каждый элемент этого массива мы должны использовать два индексов. Одним из них является отслеживать ряд и других является следить за колонну.

Элементы многомерных массивов

Вот графическое представление многомерных массивов, которые мы используем для хранения заработной платы и повышение в зарплате. Первая колонка магазинов окладов элемент массива и второй столбец хранит прироста заработной платы. Мы могли бы добавить еще один столбец для хранения новых окладов, которая добавляет добавка к зарплате.

Колонка 0 - Зарплатные

Колонка 1 - прирост

Роу 0
Row 2
Роу 3
Роу 4
Строка 5
Роу 6
Роу 7
Роу 8
Роу 9
Роу 10

Инициализация многомерных массивов

Многомерные массивы могут быть инициализирован в два пути, как один двумерный массив. Две скобки используются для объемного ряд элементов массивов.

Если вы инициализации более чем одном измерении, то вам придется использовать так много фигурных скобках, что и размеры массива.

  Int зарплату [5] [2] = (
	 (2300, 460),
	 (3400, 680),
	 (3200, 640),
	 (1200, 240),
	 (3450, 690)
 ); 

 Int зарплату [5] [2] = (0); / / Это будет инициализировать все элементы массива на 0 

 Int зарплату [5] [2];
 Зарплата [0] [0] = 2300;
 Зарплата [1] [0] = 3400;
 Зарплата [2] [0] = 3200;
 Зарплата [3] [0] = 1200;
 Зарплата [4] [0] = 3450;
 Зарплата [0] [1] = 460;
 Зарплата [1] [1] = 680;
 Зарплата [2] [1] = 640;
 Зарплата [3] [1] = 240;
 Зарплата [4] [1] = 690; 

Вот полная программа, написанная на С и С + +, демонстрирующие использование многомерных массивов. Вы можете найти весь исходный код в архиве в конце учебника. Исходный код доступен в обоих C и C + + Языки программирования. Zip файл также содержит демонстрации трехмерных массивов.

Демонстрация 2 массивов размерности

Приведенный ниже код демонстрирует два массивы размерности. Она использует тот же пример работника зарплату увеличить на 20% и добавляет его фактического заработка затем распечатать текущую зарплату, и прирост новых окладов.

Двумерного массива в C Программирование

  # Включить <windows.h>
 # Включить <stdio.h>
 # Включить <stdlib.h>
 # Определить NUM_EMPLOYEE 10
 тап_п (агдс, спаг * агду []) (
   / / Инициализировать зарплату каждого работника
   [INT зарплату NUM_EMPLOYEE] [2] = (
  	 (2300,0),
  	 (3400,0),
  	 (3200,0),
  	 (1200,0),
  	 (3450,0),
  	 (3800,0),
  	 (3900,0),
  	 (2680,0),
  	 (3340,0),
  	 () 3000,0
   );
   Int lCount = 0, gCount = 0, = 0;
   для (я = 0; я <NUM_EMPLOYEE; я + +) (
  	 Зарплата [I] [1] = ((зарплату [I] [0] * 20) / 100);
   )
   Е ("начальный оклад + Прирост = Общее зарплату \ п");
   для (я = 0; я <NUM_EMPLOYEE; я + +) (
  	 Е ("% й \ т \ т% г \ т \ т% г \ п", зарплату [I] [0], зарплату [I] [1], зарплату [I] [0] + зарплату [I] [ 1]);
   )

   Е ("Нажмите ENTER, чтобы продолжить ... \ п");
   деЬспаг ();
   возврат 0;
  ) 

Двумерный массив в C + + программирование

 # Включить <cstdlib> # # включить <iostream> определить NUM_EMPLOYEE 10 патезрасе зЬй; тап_п (агдс, спаг * агду []) (/ / инициализировать зарплату каждого работника пЪ [NUM_EMPLOYEE зарплату] [2] = ((2300 , 0), (3400,0), (3200,0), (1200,0), (3450,0), (3800,0), (3900,0), (2680,0), (3340,0 ), ()) 3000,0; Int lCount = 0, gCount = 0, I = 0, потому что (я = 0; я <NUM_EMPLOYEE; я + +) (зарплату [I] [1] = ((зарплату [I] [ 0] * 20) / 100);) суд <<"начальный оклад + Прирост = Общее зарплату" <<епсИ; для (я = 0; я <NUM_EMPLOYEE; я + +) (Е ("% й \ т \ т% г \ т \ т% г \ п ", зарплату [I] [0], зарплату [I] [1], зарплату [I] [0] + зарплату [I] [1]);) системы (" PAUSE ") ; возвращение EXIT_SUCCESS;) 

Скачать полный исходный код:

Массивы в качестве структуры данных (2.2 KiB, 1556 просмотров)

Связанные Обучение и исходный код на массивы

Метки: , ,

Ну как, понравилось?

Станьте одним из завсегдатаев, подписавшись! Вы будете первым, чтобы знать, когда мы добавляем большие посты, как это. Присоединяйтесь либо RSS-каналы или Email обновления уже сегодня!

Есть нет комментариев на этот пост. Вы можете следить за любыми ответы на эту запись через RSS 2,0 корм . Вы можете пропустить до конца и оставить ответ или TrackBack с вашего собственного сайта.


Написать ответ

Вы должны войти в систему , чтобы оставить комментарий.